XPath:选择不在A节点内的所有A节点和所有B节点

时间:2009-03-28 12:50:33

标签: c# vb.net xpath

在一个XPath表达式中是否可以使用以下内容(请参阅下面的示例):

选择所有(类msg的范围标记)和所有((具有非空alt属性的img标记) AND (不在内部类msg的span标记))

简化样本:

<span class="msg">Message text A</span>
<img alt="" />
<span class="msg">Message text B <img alt="text A" /></span>
<span class="err">Error text C <img alt="text B" /></span>
<img alt="text C" />
<span class="err">Error text D</span>

结果节点集应包含:

<span class="msg">Message text A</span>
<span class="msg">Message text B <img alt="text A" /></span>
<img alt="text B" />    
<img alt="text C" />

1 个答案:

答案 0 :(得分:7)

未经测试,但有类似的内容吗?

//span[@class='msg'] | //img[@alt!='' and not(ancestor::span[@class='msg'])]