我有一个像这样的html是div中的一个p标签(数字10),类“精细”
<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()");
这段代码得到: 第一段。
答案 0 :(得分:0)
顾名思义,SelectSingleNode()
仅返回单个节点。如果多个节点与XPath参数匹配,则仅返回第一个节点。
您应该使用SelectNodes()
代替,并添加谓词[position() < last()]
以排除最后一个文本节点:
string query = "//div[@class='fine']/p[10]//text()[position() < last()]";
HtmlNode items = document.DocumentNode.SelectSingleNode(query);