如何使用 'html agility pack' 获取子节点
how to to get childs node with 'html agility pack'
如何使用 'html agility pack' 获取子节点?
var Webget = new HtmlWeb();
var doc = Webget.Load(url);
HtmlNode elementbyId = doc.GetElementbyId("nome");
我只需要在<div id="nome">
中获取内部节点
html :
<div id="nome">
<p> <!-- this node -->
<strong></strong>
</p>
<br/><!-- this node -->
<span><!-- this node -->
<strong></strong>
</span>
<p><!-- this node -->
<span></span>
</p>
</div>
更新:
我写了下面的代码,但是写错了。
var nodes = elementbyId.Descendants();
这段代码获取里面的所有元素<div id="nome">
有没有办法解决这个问题?我不知道
使用SelectNodes("*")
代替Descendants()
获取当前元素的直接子元素。这是一个工作示例:
var html = @"<div id='nome'>
<p> <!-- this node -->
<strong></strong>
</p>
<br/><!-- this node -->
<span><!-- this node -->
<strong></strong>
</span>
<p><!-- this node -->
<span></span>
</p>
</div>";
var doc = new HtmlDocument();
doc.LoadHtml(html);
HtmlNode elementbyId = doc.GetElementbyId("nome");
var nodes = elementbyId.SelectNodes("*");
foreach (var htmlNode in nodes)
{
Console.WriteLine(htmlNode.OuterHtml);
Console.WriteLine("-----------------------");
}
输出:
<p> <!-- this node -->
<strong></strong>
</p>
-----------------------
<br/>
-----------------------
<span><!-- this node -->
<strong></strong>
</span>
-----------------------
<p><!-- this node -->
<span></span>
</p>
-----------------------
如何使用 'html agility pack' 获取子节点?
var Webget = new HtmlWeb();
var doc = Webget.Load(url);
HtmlNode elementbyId = doc.GetElementbyId("nome");
我只需要在<div id="nome">
html :
<div id="nome">
<p> <!-- this node -->
<strong></strong>
</p>
<br/><!-- this node -->
<span><!-- this node -->
<strong></strong>
</span>
<p><!-- this node -->
<span></span>
</p>
</div>
更新:
我写了下面的代码,但是写错了。
var nodes = elementbyId.Descendants();
这段代码获取里面的所有元素<div id="nome">
有没有办法解决这个问题?我不知道
使用SelectNodes("*")
代替Descendants()
获取当前元素的直接子元素。这是一个工作示例:
var html = @"<div id='nome'>
<p> <!-- this node -->
<strong></strong>
</p>
<br/><!-- this node -->
<span><!-- this node -->
<strong></strong>
</span>
<p><!-- this node -->
<span></span>
</p>
</div>";
var doc = new HtmlDocument();
doc.LoadHtml(html);
HtmlNode elementbyId = doc.GetElementbyId("nome");
var nodes = elementbyId.SelectNodes("*");
foreach (var htmlNode in nodes)
{
Console.WriteLine(htmlNode.OuterHtml);
Console.WriteLine("-----------------------");
}
输出:
<p> <!-- this node -->
<strong></strong>
</p>
-----------------------
<br/>
-----------------------
<span><!-- this node -->
<strong></strong>
</span>
-----------------------
<p><!-- this node -->
<span></span>
</p>
-----------------------