Groovy 如何在脚本断言中提取特定父元素的子元素?

Groovy 如何在脚本断言中提取特定父元素的子元素?,groovy,soapui,assertions,Groovy,Soapui,Assertions,我有下面的XML示例,它显示了节点“ProductCode”的多次出现,它同时位于节点“PrevHospProduct”和“PrevExtraspProducts”之下 <ns2:PrevHospProducts> <ns2:PrevHospProduct> <ns2:ProductCode>D00</ns2:ProductCode>

我有下面的XML示例,它显示了节点“ProductCode”的多次出现,它同时位于节点“PrevHospProduct”和“PrevExtraspProducts”之下

                <ns2:PrevHospProducts>
                    <ns2:PrevHospProduct>
                       <ns2:ProductCode>D00</ns2:ProductCode>
                       <ns2:ExcessPaid>Yes</ns2:ExcessPaid>
                    </ns2:PrevHospProduct>
                    <ns2:PrevHospProduct>
                       <ns2:ProductCode>900</ns2:ProductCode>
                    </ns2:PrevHospProduct>
                 </ns2:PrevHospProducts>
                 <ns2:PrevExtrasProducts>
                    <ns2:PrevExtraProduct>
                       <ns2:ProductCode>00A</ns2:ProductCode>
                    </ns2:PrevExtraProduct>
                 </ns2:PrevExtrasProducts>

首先需要找到父节点,即,
prewhospproduct
,然后获取
ProductCode

下面是脚本断言:

def expectedCodes = ['D00','900'] 
def pxml = new XmlSlurper().parseText(context.response)
def actualCodes = pxml.'**'.findAll{it.name() == 'PrevHospProduct'}*.ProductCode*.text() as List
log.info actualCodes
assert expectedCodes.sort() == actualCodes.sort()

再次感谢你,饶。当你知道怎么做的时候,感觉非常好,看起来很简单@马特,很高兴知道这有帮助。
def expectedCodes = ['D00','900'] 
def pxml = new XmlSlurper().parseText(context.response)
def actualCodes = pxml.'**'.findAll{it.name() == 'PrevHospProduct'}*.ProductCode*.text() as List
log.info actualCodes
assert expectedCodes.sort() == actualCodes.sort()