Xpath - 文本包含多个值

时间:2016-01-27 04:06:52

标签: xml xpath soapui

我需要一个xpath,它会返回 OutletActivityId ,其中相应的 OutletName和ActivityName具有特定值

下面附有xml回复的图片。

我已经尝试过xpath个问题但是没有让它工作

declare namespace ref='http://api.socialservices.gov.au/ebo/DataCollection/Organisation';
//ref:OutletName[contains(text(),'${#Project#u_OutletName}') and ref:ActivityName[contains(text(),'${#Project#u_ActivityName}')]/../ref:OutletActivityId

enter image description here

1 个答案:

答案 0 :(得分:1)

这是一个可能的XPath:(为便于阅读而格式化)

declare namespace ref='http://api.socialservices.gov.au/ebo/DataCollection/Organisation'; 
//ref:OutletActivity[
    ref:OutletName[contains(.,'${#Project#u_OutletName}')] 
        and 
    ref:ActivityName[contains(.,'${#Project#u_ActivityName}')]
]/ref:OutletActivityId

简要说明:

  • //ref:OutletActivity:在XML中的任何位置找到OutletActivity元素,满足以下条件
  • ref:OutletName[contains(.,'${#Project#u_OutletName}')] :(条件1)的子元素OutletName包含文字"${#Project#u_OutletName}"
  • ref:ActivityName[contains(.,'${#Project#u_ActivityName}')] :(条件2)并且包含包含文字ActivityName
  • 的子元素"${#Project#u_ActivityName}"
  • /ref:OutletActivityId:来自此类OutletActivity,返回子元素OutletActivityId

如果一个OutletActivity只能有一个OutletName和一个ActivityName个子元素,那么以下稍短的XPath也应该有效:

//ref:OutletActivity[
    contains(ref:OutletName,'${#Project#u_OutletName}')
        and 
    contains(ref:ActivityName,'${#Project#u_ActivityName}')
]/ref:OutletActivityId