【问题标题】:Read nodes inner text by class HTML Agility Pack按类 HTML Agility Pack 读取节点内部文本
【发布时间】:2021-06-13 00:06:57
【问题描述】:

我有这样的html:

<div class="main">
    <div class="class1">
        <div>
            <h1> TEXT H1 class 1
                <a> TEXT A  class 1
                </a>
            </h1>
        </div>
    </div>

    <div class="class2">
    </div>

    <div class="class3">
        <div>
            <h1> TEXT H1 class 3
                <a> TEXT A class 3
                </a>
            </h1>
        </div>
    </div>
    </div>
</div>

我得到了主类,我能够遍历其中的所有项目并得到我需要的东西。

IEnumerable<HtmlNode> nodes = doc.DocumentNode.Descendants(0).Where(n => n.HasClass("main"));

内部迭代是这样的:

node.SelectSingleNode("//div/div/h1").FirstChild.InnerText;

然后我想获得 class3 项目,所以我这样做了:

IEnumerable<HtmlNode> nodesClass3 = doc.DocumentNode.Descendants(0).Where(n => n.HasClass("class3"));

foreach(var node in nodesClass3)
{
     var someVariable = node.SelectSingleNode("//div/div/h1").FirstChild.InnerText;
}

为此的迭代给了我类的文本,我不知道为什么。

我确实尝试仅使用 class3 获取节点,但不幸的是结果相同..

【问题讨论】:

    标签: c# html-agility-pack


    【解决方案1】:

    我想通了:

    为了访问这个节点,我应该使用.//div/div/h1 而不是//div/div/h1

    【讨论】:

      猜你喜欢
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 2019-12-06
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      相关资源
      最近更新 更多