如何获得一个p标签的所有文本,除了最后与htmlagilitypack

本文关键字:文本 htmlagilitypack 最后 何获得 标签 一个 | 更新日期: 2023-09-27 18:12:22

我有一个像这样的HTML是一个p标签(编号10)在div类"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()");

这段代码只是得到:第一次对位。

如何获得一个p标签的所有文本,除了最后与htmlagilitypack

顾名思义,SelectSingleNode()只返回单个节点。如果XPath参数匹配多个节点,则只返回第一个节点。

您应该使用SelectNodes()代替,并添加谓词[position() < last()]以排除最后一个文本节点:

string query = "//div[@class='fine']/p[10]//text()[position() < last()]";
HtmlNode items = document.DocumentNode.SelectSingleNode(query);