如何使用 Xpath 嵌套 div?

How to get nested div using Xpath?

我需要得到一个带有 html 文档的嵌套 div,例如:

<div id="maindiv>
    <div id='firstdiv'>
    </div>  
    <div id="otherid">
        <div id="anotherdiv"><div id="divid"></div>
    </div>
</div>

我需要获取anotherdiv的内容。我不知道 maindiv 在主文档中的深度以及 anotherdivmaindiv.

中的深度

目前我在做:

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(content);

var main = doc.GetElementbyId("maindiv").InnerHtml;
doc.LoadHtml(main);

var another = doc.GetElementbyId("anotherdiv");

这很好用。但是,是否有更好的方法通过使用 XPath 获得所需的 div?

如果你想使用 x 路径提取子元素,你可以使用“/”,但如果你不知道元素有多深,你也可以通过“/*/”或使用“//”提取孙子元素。

使用 [@id='<id_you_are_looking_for'] 按 id 提取元素(与 class 提取的方法相同)

所以,如果您不知道 "deep" 是您的 div,请使用

//div[@id='anotherdiv']

甚至

//*[@id='anotherdiv']

提取具有所选 ID 的任何元素。

id 应该是唯一的,所以它应该足够了,但是如果你想确保另一个 div 在 main div 中,你可以使用

//div[@id='maindiv']//div[@id='anotherdiv]