Xpath 检查属性是否存在(如果只有),然后选择元素

Xpath 检查属性是否存在(如果只有),然后选择元素,xpath,Xpath,当有一个属性名测试时,我的xpath文件工作 <A> <B test="Added"> <C>test</C> </B> </A> <A> <B> <C>test</C> </B> </A> 但是,当没有属性名测试时,相同的XPATH不起作用 <A> <B test="Added">

当有一个属性名测试时,我的xpath文件工作

<A>
  <B test="Added">
     <C>test</C>
  </B>
</A>
<A>
  <B>
     <C>test</C>
  </B>
</A>
但是,当没有属性名测试时,相同的XPATH不起作用

<A>
  <B test="Added">
     <C>test</C>
  </B>
</A>
<A>
  <B>
     <C>test</C>
  </B>
</A>
即使没有属性名测试,我应该如何使其工作。

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

<A>
  <B test="Added">
     <C>test</C>
  </B>
</A>
<A>
  <B>
     <C>test</C>
  </B>
</A>
//B[not(@test ='Deleted')]/C/text()
此XPath匹配
B
元素,其中
test
属性不等于
'Deleted'
,包括属性
test
不存在的情况


演示:

XML:

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

您的意思是当没有属性名clientoffset时吗?请参阅我对XPath的回答,这两种情况都适用。。