选择SingleNode作为小写字母
本文关键字:小写字 SingleNode 选择 | 更新日期: 2023-09-27 18:23:51
我一直在看SO,发现了许多问答;A这可能是同样的问题,但我不能让我的工作,我做错了什么。
当我提取特定的<meta
标签时,我会以这种方式
HtmlNode clnode =
htmlDoc.DocumentNode.SelectSingleNode("//meta[@http-equiv='content-type']");
这项工作很好,只是与不匹配
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
,我试过这样使用lower-case()函数
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");