【问题标题】:Finding Node of Matching Raw Html in an HtmlAgility HtmlDocument在 HtmlAgilitypack HtmlDocument 中查找匹配原始 Html 的节点
【发布时间】:2009-03-03 21:24:53
【问题描述】:

我目前有一个程序,可以根据查找具有匹配 id 的标签来查找和编辑 HTML 文件。

我想扩展它以找到一个匹配 InnerHtml 的标签(忽略大小写和空格)

使用 Html Agility 执行此操作的好方法是什么?我想使用 Html Agility 来做,因为程序的其余部分都在使用它。

谢谢。

【问题讨论】:

  • 嘿,我注意到有一个 HtmlAgilityPack 标记...由于某种原因,我无法标记这个(可能缺少代表),但如果这个问题被标记为可能对其他人有帮助它。 - 干杯,斯科特。

标签: c# html-agility-pack


【解决方案1】:

在这里粗略地拍摄,但你应该可以做这样的事情:

            HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("YOUR_TAG_SELECTOR");

            if (nodes != null)
            {
                foreach (HtmlNode node in nodes)
                {
                    if (node.InnerHtml.ToLower().Trim() == "YOUR_MATCH")
                    {
                        //success routine
                        break;
                    }
                }
            }

【讨论】:

  • 我认为这应该是 node.InnerHtml,而不是 node.InnerText :)
  • 啊,是的,很抱歉,我在原始问题中阅读了匹配的文本。已更正。
【解决方案2】:

我们使用正则表达式完成了这项工作。 这样的事情对我们有用:

private static List<HtmlNode> GetMatchingNodes(string xPath, string pattern, HtmlDocument htmlDocument)
{
    List<HtmlNode> matchingNodes = new List<HtmlNode>();
    foreach (HtmlNode node in htmlDocument.DocumentNode.SelectNodes(xPath))
    {
        if (Regex.IsMatch(node.InnerHtml, pattern))
        {
            matchingNodes.Add(node);
        }
    }
    return matchingNodes;
}

希望这会有所帮助。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多