...编辑 我在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}
但是我不知道如何以收集的形式处理结果。如何在找到我需要的结果后添加新属性?