C# 在HtmLagibility HtmlDocument中查找匹配原始Html的节点
我目前有一个程序,可以根据查找具有匹配id的标记来查找和编辑HTML文件 我想扩展它以找到一个具有匹配InnerHtml的标记(不考虑大小写和空格) 使用Html敏捷性做这件事的好方法是什么?我想使用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");
谢谢。在这里进行粗略拍摄,但您应该能够执行以下操作:
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:)啊,是的,我很抱歉,我读了原始问题中的匹配文本。更正。