如何从htmlagility包中的节点访问子节点 [英] how to access child node from node in htmlagility pack
本文介绍了如何从htmlagility包中的节点访问子节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
<html>
<body>
<div class="main">
<div class="submain"><h2></h2><p></p><ul></ul>
</div>
<div class="submain"><h2></h2><p></p><ul></ul>
</div>
</div>
</body>
</html>
我将html加载到了HtmlDocument
中.然后,我将XPath选择为submain
.然后我不知道如何分别访问每个标签,即h2
,p
.
I loaded the html into an HtmlDocument
. Then I selected the XPath as submain
. Then I dont know how to access to each tags i.e h2
, p
separately.
HtmlAgilityPack.HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//div[@class=\"submain\"]");
foreach (HtmlAgilityPack.HtmlNode node in nodes) {}
如果我使用node.InnerText
,我会得到所有文本,并且InnerHtml
也没有用.如何选择单独的标签?
If I Use node.InnerText
I get all the texts and InnerHtml
is also not useful. How to select separate tags?
推荐答案
以下内容将有所帮助:
HtmlAgilityPack.HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//div[@class=\"submain\"]");
foreach (HtmlAgilityPack.HtmlNode node in nodes) {
//Do you say you want to access to <h2>, <p> here?
//You can do:
HtmlNode h2Node = node.SelectSingleNode("./h2"); //That will get the first <h2> node
HtmlNode allH2Nodes= node.SelectNodes(".//h2"); //That will search in depth too
//And you can also take a look at the children, without using XPath (like in a tree):
HtmlNode h2Node = node.ChildNodes["h2"];
}
这篇关于如何从htmlagility包中的节点访问子节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文