【问题标题】:HtmlAgilityPack getting content in ChildNode using ClassHtmlAgilityPack 使用 Class 在 ChildNode 中获取内容
【发布时间】:2014-11-04 10:13:47
【问题描述】:

我有一个基本的 HTML 页面。它包括omo区域。相同的 8 类不同的内容。

<div class="omo-page-wrapper">
    <div class="omo-part">
        <div class="omo-img">...</div>
        <div class="omo-info">
            <div class="r-logo">...</div>
            <div class="r-content font-hbold">
                <i>Content Area 1</i>
                <em>Content Area 2</em>
                <a href="/blabla">Href</a>
            </div>
        </div>
    </div>
    <div class="omo-part">
        <div class="omo-img">...</div>
        <div class="omo-info">
            <div class="r-logo">...</div>
            <div class="r-content font-hbold">
                <i>Content Area 1</i>
                <em>Content Area 2</em>                
                <a href="/blabla2">Href2</a>
            </div>
        </div>
    </div>
    <div class="omo-part">...</div>
    <div class="omo-part">...</div>
    <div class="omo-part">...</div>
    <div class="omo-part">...</div>
    <div class="omo-part">...</div>
    <div class="omo-part">...</div>   
</div>

我想获取所有 r-content font-hbold 类中的所有内容(i、em、href)。我用过foreach,我得到了所有节点。但是我没有 ChildNodes..

HtmlDocument document = new HtmlDocument();
document.LoadHtml(html);

var allElementsWithClassTalkMedallion = document.DocumentNode.SelectNodes("//*[contains(@class,'r-content font-hbold')]");

foreach (HtmlNode node in allElementsWithClassTalkMedallion)
{
    dataTable.Rows.Add("i", "em", "href"); //??
}

return promotions;

8 个(或更多)相同的类区域,3 个子节点。如何获取所有 i、em、href 内容?非常感谢。

【问题讨论】:

    标签: c# html-agility-pack nodes


    【解决方案1】:

    一种可能的方式,您可以使用SelectSingleNode() 从每个node 变量中一次获取一个特定节点:

    foreach (HtmlNode node in allElementsWithClassTalkMedallion)
    {
        var i = node.SelectSingleNode("i").InnerText.Trim();
        var em = node.SelectSingleNode("em").InnerText.Trim();
        var href = node.SelectSingleNode("href").InnerText.Trim();
        dataTable.Rows.Add(i, em, href);
    }
    

    【讨论】:

      猜你喜欢
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 2014-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多