1

我有一堆<div class="post">节点,我需要选择每个节点的内容,同时排除一个名为<div class="quote">.

例子:

<div class="post">
<div class="quote"><a href="{url}">some text</div>
some content<br>more content
</div>

在本例中,选择 "some content<br>more content"并排除<div class="quote">..</div>

我试过这个,不起作用:

@doc.xpath("//div[@class='post'][not(self::div)]")

4

1 回答 1

2

您的 XPath 表达式正在选择所有<div/>没有元素的<div/>元素,因此它永远不会返回任何值。选择“post”后需要一个轴步 - <div/>

选择所有子节点,但排除那些具有本地名称(省略命名空间)“div”和类属性“quoe”的子节点。

//div[@class='post']/node()[not(local-name() = 'div' and @class='quote')]

您也可以使用self::div代替本地名称测试。

于 2013-09-19T23:45:28.730 回答