HTML Agility Pack - 获取没有类或id的div(C#)

c# html-agility-pack parsing

我一直在尝试在StackOverflow上遵循一些解决方案,但我需要一些帮助。
这是源HTML:

<div class="myclass">
 <div style="font-size:2em;"> STRING_N1 </div>
 <div> STRING_N2 </div>
</div>

这是我目前的代码:

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

到目前为止一切顺利 ,我可以毫无问题地提取“ STRING_N1 ”。但是,我无法弄清楚如何在没有类或id的情况下提取STRING_N2
谢谢。

一般承认的答案

您可以使用LINQ来获取后代div

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


Related

许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因