Xml SOAPUI XPath特定值属性传输
我有一个响应,其中返回了许多值。我只想传输一个特定值。我该怎么办Xml SOAPUI XPath特定值属性传输,xml,json,xpath,soapui,Xml,Json,Xpath,Soapui,我有一个响应,其中返回了许多值。我只想传输一个特定值。我该怎么办 <lookupData> <entry> <key>CREDITCARD</key> <value> <item>{"information":"Master Card","nameOnCard":"John","cardNumber":"558732******5605","cardExpiry"
<lookupData>
<entry>
<key>CREDITCARD</key>
<value>
<item>{"information":"Master Card","nameOnCard":"John","cardNumber":"558732******5605","cardExpiry":"92016","description":"MASTER CARD 5605","verified":"false","pmId":"DxcyAUk9MEE8REp2U2FgUWRdFmVCFH4RX3NUZH9QZ1MYZQ8\u003d","defaultPM":"false"}</item>
</value>
</entry>
</lookupData>
信用卡
{“信息”:“Master Card”,“nameOnCard”:“John”,“cardNumber”:“558732*********5605”,“cardExpiry”:“92016”,“描述”:“Master Card 5605”,“verified”:“false”,“pmId”:“DxcyAUk9MEE8REp2U2FgUWRdFmVCFH4RX3NUZH9QZ1MYZQ8\u003d”,“defaultPM”:“false”}
在
标记中,我只想传输pmId
。我如何在SoapUI中实现这一点
非常感谢在纯XPath中,您可以使用此表达式
substring-before(substring-after(//lookupData/entry[key="CREDITCARD"]/value/item, ',"pmId":"'), '","defaultPM"')
它在lookupdatea
中查找项
元素,其中键
是信用卡
,并提取,“pmId:“
和”,“defaultPM”
之间的字符串
您还可以尝试使用XPath直接读取JSON,因为。将JSON转换为XML路径为
//lookupdatea/entry[key=“CREDITCARD”]/value/item/pmId
您将JSON嵌入到XML中。我不相信有一种方法可以用纯XPath来提取它,除非您想像@helderdarocha建议的那样使用字符串操作。
您可以在Groovy中执行此操作:
def lookupData = new XmlSlurper().parseText("${context.currentStep.name}#ResponseAsXml")
def item = new JsonSlurper().parseText(lookupData.entry.value.item.toString())
// at this point you can access the value
println item.pmId.value
// so you can do something like
testRunner.testCase.setPropertyValue("prop_name", item.pmId.value)
有可能优化此代码,但我希望您能理解