什么时候在HtmlAgilityPack中使用双斜杠
本文关键字:HtmlAgilityPack 什么时候 | 更新日期: 2023-09-27 18:16:33
我想循环遍历表中的所有行,并选择一行中的所有<p>
。
foreach (var r in Table.SelectNodes("tr"))
{
var Paragraphs = r.SelectNodes("//p");
}
为什么我必须使用SelectNodes("//p")
而不仅仅是SelectNodes("p")
?如果我做后者,我总是得到null
。
我想知道为什么我不在foreach语句中使用//tr
。
这样写的//p
,在这种情况下,它将找到位于tr
元素的HTML
树内任何深度的"p"
节点。
如果你写/p
,它将只搜索tr
元素的HTML
树的根节点
例子:
对于//p
,您将找到2个<p>
元素,只有/p
,您将找不到它,并且将返回null。
<tr>
<div>
<p></p>
</div>
<div>
<div>
<p></p>
</div>
<div>
</tr>
在这种情况下,如果你按/p搜索,元素将被找到。
<tr>
<p></p>
</tr>