如何使用 htmlagilitypack 获取除最后一个 p 标签的所有文本
how to get all text of an p tag except last with htmlagilitypack
我有一个 html 就像 div 中的一个 p 标签(编号 10)和 class "fine"
<p>
first para.
<br/>
second para.
<br/>
<br/>
nine para .
...
<br/>
last para.
</p>
我想获取除最后一段之外的所有文本:
第一段
第二段
九段
...
HtmlNode item = document.DocumentNode.SelectSingleNode("//div[@class='fine']/p[10]//text()");
这段代码刚得到:
第一段
顾名思义,SelectSingleNode()
只是return单节点。如果 XPath 参数匹配多个节点,它 return 只有第一个。
您应该改用 SelectNodes()
,并添加谓词 [position() < last()]
以排除最后一个文本节点:
string query = "//div[@class='fine']/p[10]//text()[position() < last()]";
HtmlNode items = document.DocumentNode.SelectSingleNode(query);
我有一个 html 就像 div 中的一个 p 标签(编号 10)和 class "fine"
<p>
first para.
<br/>
second para.
<br/>
<br/>
nine para .
...
<br/>
last para.
</p>
我想获取除最后一段之外的所有文本: 第一段 第二段 九段 ...
HtmlNode item = document.DocumentNode.SelectSingleNode("//div[@class='fine']/p[10]//text()");
这段代码刚得到: 第一段
顾名思义,SelectSingleNode()
只是return单节点。如果 XPath 参数匹配多个节点,它 return 只有第一个。
您应该改用 SelectNodes()
,并添加谓词 [position() < last()]
以排除最后一个文本节点:
string query = "//div[@class='fine']/p[10]//text()[position() < last()]";
HtmlNode items = document.DocumentNode.SelectSingleNode(query);