gpt4 book ai didi

c# - SelectSingleNode 为小写

转载 作者:行者123 更新时间:2023-11-30 15:28:17 24 4
gpt4 key购买 nike

我一直在查看 SO 并发现许多问答可能是同一类型的问题,但我无法正常工作,我做错了什么。

当我提取某个 <meta 时tags 我是这样做的

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,所以你需要求助于一些丑陋的 hack,例如:

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");

关于c# - SelectSingleNode 为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25976466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com