0

我有以下html。

<div id="content">
   <h3>Title</h3>
   <p>Some stuff</p>
   <p>other stuff</p>
   <p>other other stuff</p>
   <p>unnecessary stuff</p>
   <p>other unnecessary stuff</p>
</div>

到目前为止,我已经写了这个表达式。

//div[@id="content"]//text()

哪个有效,但我想要的不是提取最后两个<p>元素的文本,因为那是不必要的。我试着写这个...

//div[@id="content"]/p[not(position() > last() - 2)]//text()

没有按预期工作。然后我尝试了这个...

//div[@id="content"]/[not(self::p[position() > last() - 2])]//text()

这也没有奏效。

4

1 回答 1

2

此表达式返回您感兴趣的文本节点:

//div[@id="content"]/*[not(self::p and position() > last() - 2)]//text()

*/.

于 2013-01-31T08:42:55.730 回答