首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用groovy脚本使用XmlSlurper提取元素值

使用groovy脚本使用XmlSlurper提取元素值
EN

Stack Overflow用户
提问于 2021-02-28 22:35:14
回答 2查看 984关注 0票数 0

我有一个输入xml,如下所示,我想提取'Maker‘值并将其传递给一个元素:-

代码语言:javascript
运行
复制
<?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并将其作为属性传递,但是没有运气:-

代码语言:javascript
运行
复制
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;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-09 10:23:51

校正:

代码语言:javascript
运行
复制
 def body = message.getBody(java.lang.String)
票数 1
EN

Stack Overflow用户

发布于 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用于解析Stringparse可以使用InputStream

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66414546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档