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)
有可能优化此代码,但我希望您能理解