如何在 html 敏捷包中使用祖先 xpath 获取最后一个父节点
How to get last parent node with ancestors xpath in html agility pack
如何在 HTML Agility Pack (HAP) 中的 HTML 文档中获取具有祖先 XPath 的最后一个父节点?例如,我有一份 HTML 文件,请检查以下内容:
<html>
<body>
<div>
<div>
<div>
<a>
<h3>
</h3>
</a>
</div>
</div>
</div>
</body>
</html>
我需要在 HAP 中获取最后一个父节点及其祖先路径。
比如上面HTML文档的XPath是
/html/body/div/div[1]/div[2]/a/h3
预计 xpath 将是
/html/body/div/div[1]/div[2]
请注意,我需要动态获取预期的 Xpath,而不是作为手动硬编码值。例如,基于最后一个元素,我需要获取具有祖先路径的父元素。
幸运的是,Html-Agility-Pack 附带了一个 XPath 属性 和一些方法来获得您想要的东西。
因此,以某种方式 select 一个 Html 节点,移动到父节点并检索祖先 XPath(通过 Linq 从 first/last),如下所示:
htmlNode.ParentNode.Ancestors().FirstOrDefault().XPath
要得到始祖,末祖是这样的
htmlNode.ParentNode.Ancestors().LastOrDefault().XPath
或遍历祖先。
如何在 HTML Agility Pack (HAP) 中的 HTML 文档中获取具有祖先 XPath 的最后一个父节点?例如,我有一份 HTML 文件,请检查以下内容:
<html>
<body>
<div>
<div>
<div>
<a>
<h3>
</h3>
</a>
</div>
</div>
</div>
</body>
</html>
我需要在 HAP 中获取最后一个父节点及其祖先路径。 比如上面HTML文档的XPath是
/html/body/div/div[1]/div[2]/a/h3
预计 xpath 将是
/html/body/div/div[1]/div[2]
请注意,我需要动态获取预期的 Xpath,而不是作为手动硬编码值。例如,基于最后一个元素,我需要获取具有祖先路径的父元素。
幸运的是,Html-Agility-Pack 附带了一个 XPath 属性 和一些方法来获得您想要的东西。
因此,以某种方式 select 一个 Html 节点,移动到父节点并检索祖先 XPath(通过 Linq 从 first/last),如下所示:
htmlNode.ParentNode.Ancestors().FirstOrDefault().XPath
要得到始祖,末祖是这样的
htmlNode.ParentNode.Ancestors().LastOrDefault().XPath
或遍历祖先。