xpath表达式通配符

时间:2015-01-18 19:43:17

标签: xpath wildcard

我需要在以下xpath中指定通配符

Field[@name="/Root/Table[i]/FirstName"]

基本上,“i”是一个变量,可以有一个GUID或一个正在运行的数字。我想获取所有基本上具有属性模式的元素

"/Root/Table[*]/FirstName"

即。以“/ Root / Table [”开头,以“] / FirstName”结尾。关于如何做到这一点的任何想法?

以下是有效负载示例:

<Package>
  <Input>
    <Data id="36e9f0fe3f8d4508ac20710e07cfddd4">
      <Input>
        <Field name="/Root/Table[1]/FirstName">Thomas</Field>
      </Input>
    </Data>
  </Input>
</Package>  

1 个答案:

答案 0 :(得分:1)

您应该可以使用starts-with()和临时ends-with()执行此操作(因为XPath 1.0实际上没有ends-with()函数):

//*[starts-with(@name, '/Root/Table[') and 
    substring(@name, string-length(@name) - 11 + 1) = ']/FirstName']

此处11]/FirstName的长度。