编程语言
首页 > 编程语言> > C#-SelectSingleNode为小写

C#-SelectSingleNode为小写

作者:互联网

我一直在查看SO,发现许多可能是同一类型问题的Q& A,但我无法让我工作,我做错了什么.

当我提取某个< meta标签时,我会以这种方式进行操作

HtmlNode clnode = 
htmlDoc.DocumentNode.SelectSingleNode("//meta[@http-equiv='content-type']");

这项工作很好,只是无法匹配

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

香港专业教育学院试图像这样使用小写()函数,

HtmlNode ctnode = 
htmlDoc.DocumentNode.SelectSingleNode("//meta[lower-case(@http-equiv)='content-type']");

但它不起作用.

我正在使用最新的HtmlAgilityPack.

我该如何解决?有没有更好的办法?

解决方法:

如果您想使用xpath选择,就我所知,HtmlAgilityPack使用XPath 1.0,因此您需要采取一些丑陋的方法,例如:

HtmlNode clnode = htmlDoc.DocumentNode.SelectSingleNode("//meta[translate(@http-equiv,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='content-type']");

或者,您可以简单地使用LINQ:

var clnode= htmlDoc.DocumentNode
                   .Elements("meta")
                   .SingleOrDefault(el => el.Attributes["http-equiv"].Value.ToLower() == "content-type");

标签:xpath,html-agility-pack,c
来源: https://codeday.me/bug/20191029/1957584.html