wie man childs node mit 'html agility pack' bekommt?
var Webget = new HtmlWeb();
var doc = Webget.Load(url);
HtmlNode elementbyId = doc.GetElementbyId("nome");
Ich muss nur den internen Knoten in <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>
Aktualisierung:
Ich habe den folgenden Code geschrieben, aber es ist falsch.
var nodes = elementbyId.Descendants();
Dieser Code holt alle Elemente innerhalb <div id="nome">
Gibt es eine Möglichkeit, das Problem zu lösen? Ich habe keine Ahnung
Verwenden Sie SelectNodes("*")
anstelle von Descendants()
, um direkt SelectNodes("*")
Elemente des aktuellen Elements zu erhalten. Hier ist ein Arbeitsbeispiel:
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("-----------------------");
}
Ausgabe :
<p> <!-- this node -->
<strong></strong>
</p>
-----------------------
<br/>
-----------------------
<span><!-- this node -->
<strong></strong>
</span>
-----------------------
<p><!-- this node -->
<span></span>
</p>
-----------------------