HTML Agility Pack - Get Div ohne Klasse oder ID (C #)

c# html-agility-pack parsing

Frage

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.

Akzeptierte Antwort

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);


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum