我需要获取一个带有 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?
最佳答案
如果你想使用x路径提取子元素,你可以使用“/”,但你也可以通过“/*/”提取孙元素,或者如果你不知道元素有多深,可以使用“//”。
通过 id 提取元素使用 [@id='<id_you_are_looking_for']
(同样的方式按类提取)
所以如果你不知道你的 div 有多“深”,就使用
//div[@id='anotherdiv']
甚至
//*[@id='anotherdiv']
提取具有选定 ID 的任何元素。
id 应该是唯一的,所以它应该足够了,但如果你想确保另一个 div 位于主 div 中,你可以使用
//div[@id='maindiv']//div[@id='anotherdiv]
关于c# - 如何使用Xpath获取嵌套div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39465184/