如何使用Xpath获取嵌套div?

时间:2016-09-13 08:12:12

标签: c# html xpath html-agility-pack

我需要使用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?

1 个答案:

答案 0 :(得分:3)

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

通过id使用[@id='<id_you_are_looking_for']提取元素(按类提取的方式相同)

所以,如果你不知道你的div是多么“深”,只需使用

//div[@id='anotherdiv']

甚至

//*[@id='anotherdiv']

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

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

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