如何使用XPath在XML中获取特定节点名称(使用Groovy)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用XPath在XML中获取特定节点名称(使用Groovy)相关的知识,希望对你有一定的参考价值。

我有一个XML如下:

String xml = """  
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope>
        <soapenv:Body>
            <processAsyncRequest></processAsyncRequest>
        </soapenv:Body>
    </soapenv:Envelope>  
"""  

使用Groovy,我想使用XPath(//:Body / [1] / name())在“Body”中找到第一个节点名称

Output Should be : processAsyncRequest 

我正在使用XmlSlurper解析xml。但无法弄清楚使用XPath获取节点名称的后续步骤

def rootNode = new XmlSlurper().parseText(xml)  

有没有简单的方法来实现这一目标?注意:我的xml结构每次都会改变。所以我想使用相对路径。

答案

但那不是XPath。这是GPath

String xml = """<?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv='...'>
        <soapenv:Body>
            <processAsyncRequest></processAsyncRequest>
        </soapenv:Body>
    </soapenv:Envelope>  
"""  
def rootNode = new XmlSlurper().parseText(xml)

println rootNode.Body.'*'[0].name()

以上是关于如何使用XPath在XML中获取特定节点名称(使用Groovy)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中使用 XPath 从 XML 中获取特定节点?

获取没有特定祖先 xml xpath 的节点

如何使用 xPath (10g) 在 Oracle SQL extract() 中获取节点名称

无论特定 Id 如何,如何使用 XPath 选择类别 XML 节点?

如何在具有 xmlns 属性的 xml 中使用 xpath 获取特定的嵌套元素? [复制]

如何使用 vbscript 删除 XML 文件中的特定节点