XPath选择,同时排除具有某些属性值的元素

Isa*_*aac 7 xpath attributes filter

我在这里的第一篇文章 - 这是一个很棒的网站,我一定会尽我所能尽可能多地回馈.

我已经看到了以下问题的不同表现形式; 但是我的解决方法似乎不起作用.

考虑这个简单的树:

<root>
    <div>
        <p>hello</p>
        <p>hello2</p>
        <p><span class="bad">hello3</span></p>
    </div>
</root>
Run Code Online (Sandbox Code Playgroud)

我想提出一个XPath表达式,它将选择"div"的所有子节点,除了 "class"属性等于"bad"的元素.

这是我尝试过的:

/root/div/node()[not (@class='bad')]
Run Code Online (Sandbox Code Playgroud)

......但这似乎不起作用.

我在这里错过了什么?

干杯,
艾萨克

Ode*_*ded 3

当使用提供的 XML 文档测试您的 XPath,XPath 似乎确实选择了所有没有属性的子节点class="bad"- 这些是<p>文档中的所有元素。

您会注意到,具有此类属性的唯一子节点是<span>,它确实没有被选中。

您是否希望p您周围的节点span不被选择?