AgilityPack 在 DOM 三中排名最后
本文关键字:最后 DOM AgilityPack | 更新日期: 2023-09-27 18:36:44
承认这样的 HTML:
<p>hello<p>
<p>
<table>
<tbody>
<tr>
<td>
<p>is it me you're looking for</p>
</td>
</tr>
<tr>
<td>
<p>can you have me too?</p>
</td>
</tr>
</tbody>
</table>
</p>
我想要的是获取我的 P 元素的内部文本,但我在表格部分遇到了麻烦。当我使用循环时,遍历所有 P,我得到了 4 个内部文本:
- 你好
- 是你要找的我,你也能拥有我吗?
- 是我吗,你是为了 我
- 你也可以拥有我吗?
在这种情况下,我不想让 P 在桌子周围,因为我已经通过在 TD 内循环他的后代孩子来获得它们。如何选择带有敏捷包的 P 元素,以便在有其他 P 作为他的孩子时仅获得 P 元素?(所以循环上的结果只会是 1,3,4)?
我实际上使用以下方法获取 P 元素:
HtmlDocument html = new HtmlDocument();
var pTag = html.DocumentNode.SelectNodes(".//p");
XPath .//p[not(descendant::p)]
将从您的示例中获取 1、3 和 4。它查找所有p
元素,然后跳过具有p
后代的元素。