我有一个输入xml,如下所示,我想提取'Maker‘值并将其传递给一个元素:-
<?xml version="1.0" encoding="UTF-8"?>
<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"                ../../Di/xsd/Doc/Data_0100.xsd">
    <Area>
        <CreationDateTime>2020-11-30T15:47:44Z</CreationDateTime>
        <No>
            <Id1>146520459</Id1>
        </No>
    </Area>
    <text>
        <Catalog>
            <Part>
                <Id>12345</Id>
                <Revision/>
                <Mixer>rtg</Mixer>
            </Part>
            <Dis>
                <Maker>7874</Maker>
            </Dis>
        </Catalog>
    </text>
</Data> 我试过如下所示,我需要获取element2并将其作为属性传递,但是没有运气:-
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
import groovy.xml.MarkupBuilder;
def Message processData(Message message) {
     def body = message.getBody()
       
       def root = new XmlSlurper().parseText(body);
       
       def element2 = root.text.Catalog.Dis.Maker;
       message.setProperty("element2", element2.text());
       return message;
}发布于 2021-03-09 10:23:51
校正:
 def body = message.getBody(java.lang.String)发布于 2021-02-28 22:50:49
这条路是错的。使用root.text.Catalog.Dis.Maker代替。
编辑
根据OP,实际错误是:
由: groovy.lang.MissingMethodException: No签名的方法: groovy.util.XmlSlurper.parseText()适用于参数类型:(ByteArrayInputStream)值: java.io.ByteArrayInputStream@489dd356
parseText用于解析String。parse可以使用InputStream。
https://stackoverflow.com/questions/66414546
复制相似问题