我需要使用html文档获取嵌套div,例如:
<div id="maindiv>
<div id='firstdiv'>
</div>
<div id="otherid">
<div id="anotherdiv"><div id="divid"></div>
</div>
</div>
我需要获取anotherdiv
的内容。我不知道主文档中maindiv
的深度以及anotherdiv
中maindiv
的深度。
目前我在做:
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(content);
var main = doc.GetElementbyId("maindiv").InnerHtml;
doc.LoadHtml(main);
var another = doc.GetElementbyId("anotherdiv");
这很好用。但是有没有更好的方法来使用XPath获得所需的div?
答案 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]