Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在HtmLagibility HtmlDocument中查找匹配原始Html的节点_C#_Html Agility Pack - Fatal编程技术网

C# 在HtmLagibility HtmlDocument中查找匹配原始Html的节点

C# 在HtmLagibility HtmlDocument中查找匹配原始Html的节点,c#,html-agility-pack,C#,Html Agility Pack,我目前有一个程序,可以根据查找具有匹配id的标记来查找和编辑HTML文件 我想扩展它以找到一个具有匹配InnerHtml的标记(不考虑大小写和空格) 使用Html敏捷性做这件事的好方法是什么?我想使用Html敏捷性来完成它,因为程序的其余部分正在使用它 谢谢。在这里进行粗略拍摄,但您应该能够执行以下操作: HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("YOUR_TAG_SELECTOR");

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

我想扩展它以找到一个具有匹配InnerHtml的标记(不考虑大小写和空格)

使用Html敏捷性做这件事的好方法是什么?我想使用Html敏捷性来完成它,因为程序的其余部分正在使用它


谢谢。

在这里进行粗略拍摄,但您应该能够执行以下操作:

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

我们已经使用正则表达式完成了这项工作。 类似这样的东西对我们有用:

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;
}
私有静态列表GetMatchingNodes(字符串xPath、字符串模式、HtmlDocument HtmlDocument)
{
列表匹配节点=新列表();
foreach(htmlDocument.DocumentNode.SelectNodes(xPath)中的HtmlNode节点)
{
if(Regex.IsMatch(node.InnerHtml,pattern))
{
匹配节点。添加(节点);
}
}
返回匹配节点;
}

希望这有帮助。:)

嘿,我注意到有一个HtmlAgilityPack标签。。。出于某种原因,我不能给这个问题加上标签(可能缺乏代表性),但如果这个问题加上标签,可能会对其他人有所帮助。-干杯,斯科特。我想这应该是node.InnerHtml,而不是node.InnerText:)啊,是的,我很抱歉,我读了原始问题中的匹配文本。更正。