我正在使用 HtmlAgilityPack 来解析和分析 HTML 页面,我需要知道每个节点的“深度”——与节点的距离Body
。示例(“深度”属性仅用于说明目的):
<html>
<head></head>
<body depth="0">
<div depth="1">
<ul depth="2">
<li depth="3">
<p depth="4">foo</p>
</li>
<li depth="3">
<p depth="4">bar</p>
</li>
</ul>
</div>
</body>
</html>
我试图避免两个明显的解决方案:
- 扫描 HTML 树(DFS、BFS 等),计算每个节点的深度,并将值存储在 Dictionary 或类似物中。
node.ParentNode
通过计数直到body
达到“按需”计算每个节点的深度。
有没有办法通过使用 HtmlAgilityPack 收集的现有数据来避免这些Load
?