已编辑...我在 Groovy 方面的知识是基本的,我需要执行以下操作,但我不知道该怎么做。
假设我有这个 XML:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:analyzeEffectOfReplaceOfferResponse>
<ns2:productOfferings>
<ns2:productOffering xsi:type="ns2:ProductOfferingInstanceCore" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns2:opExtn>C_P87531945-0993-46d1-8f23-ed23caa6e0cf</ns2:opExtn>
<ns2:productOffering>
<ns9:id>8447669</ns9:id>
</ns2:productOffering>
<ns2:productOffering>
<ns9:id>8447100</ns9:id>
</ns2:productOffering>
</ns2:productOffering>
</ns2:productOfferings>
</ns2:analyzeEffectOfReplaceOfferResponse>
</soap:Body>
</soap:Envelope>
给定一个 XPath 表达式,如:
/Body/analyzeEffectOfReplaceOfferResponse/productOfferings/productOffering/productOffering
和 GPathResult 为:
gpathRequest = new XmlSlurper().parse(inputFile)
我知道如何使用 findAll 来搜索所有相关的标签。假设我将 Xpath 存储在 xPath 变量中:
def gpath = "XML." + xPaths
child = Eval.me( 'XML', gpathRequest, gpath ).depthFirst().findAll{it.value}
但是我不确定如何以收集的形式处理这里的结果。找到我需要的结果后如何添加新属性?