如果仅选择元素,则检查属性是否退出

时间:2016-04-22 00:33:13

标签: xpath

当存在属性名称test时,我的xpath工作文件。

<A>
  <B test="Added">
     <C>test</C>
  </B>
</A>

XPATH

//B[@test !='Deleted']/C/text()

但是当没有属性名称测试时,相同的XPATH不起作用。

<A>
  <B>
     <C>test</C>
  </B>
</A>

XPATH

//B[@test!='Deleted']/C/text()

即使没有属性名称测试,我该怎么做才能使它工作。

1 个答案:

答案 0 :(得分:1)

请尝试使用not(@test ='Deleted')

//B[not(@test ='Deleted')]/C/text()

此XPath与B属性不等于test的{​​{1}}元素匹配,包括属性'Deleted'不存在的情况。

演示:xpathtesterxpatheval

<强> XML:

test

输出

<root>
<A>
  <B test="Added">
     <C>test</C>
  </B>
</A>
<A>
  <B>
     <C>test</C>
  </B>
</A>
</root>