Ich habe versucht, einige Lösungen hier auf StackOverflow zu folgen, aber ich brauche etwas Hilfe.
Dies ist der Quell-HTML:
<div class="myclass">
<div style="font-size:2em;"> STRING_N1 </div>
<div> STRING_N2 </div>
</div>
Und das ist mein aktueller Code:
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlcode);
var res = doc.DocumentNode.SelectNodes("//div[@class='myclass']");
foreach (var item in res)
{
var firstDiv = item.SelectSingleNode("div");
var content1 = firstDiv.ChildNodes[0].InnerText.Trim();
richTextBox1.AppendText(content1.ToString());
}
So weit, so gut, ich kann " STRING_N1 " ohne ein Problem extrahieren. Ich kann jedoch nicht herausfinden, wie man STRING_N2 extrahiert, ohne eine Klasse oder ID zu haben.
Vielen Dank.
Sie können LINQ
, um nachgeordnete div
s zu erhalten:
var divs = doc.DocumentNode.SelectNodes("//div[@class='myclass']")
.SelectMany(x => x.Descendants("div"));
var contents = divs.Select(x => x.InnerText.Trim());
richTextBox1.AppendText(string.Join(Environment.NewLine, contents);