c# - xpath 和 c#

标签 c# xpath

我正在尝试创建一个通过 XML 文档进行搜索的 winform 应用程序。 对于我的搜索,我需要使用 lower-case() xpath 函数将 xpath 条件中的 XML 属性转换为小写。 这会导致与函数命名空间相关的问题。

我尝试手动添加命名空间:

        XmlNamespaceManager nsMgr = new XmlNamespaceManager(prs.Doc.NameTable);
        nsMgr.AddNamespace("fn", "http://www.w3.org/2005/02/xpath-functions");
        XmlNodeList results = prs.Doc.SelectNodes("//function[starts-with(fn:lower-case(@name),'" + txtSearch.Text + "')]",nsMgr);

但我仍然得到异常: 由于函数未知,此查询需要 XsltContext。

最佳答案

lower-case()函数是为 XPath 2.0 定义的.

XPath 1.0 将字母转换为小写 仍然可以使用 translate()功能如下图:

translate(@attrName, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')

关于c# - xpath 和 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/587864/

相关文章:

c# - 以编程方式更改选定的 ListBoxItem

c# - directory.exists 是否适用于 URL?

python - 如何通过Selenium WebDriver和Python定位用户名和密码元素

html - 从具有最小长度的子节点获取所有文本

c# - 确定图像整体亮度

c# - 为什么 FileStream 提供 FtpWebRequest 而不是 MemoryStream?

java - 对格式不正确的 XML 进行 XPath 评估?

xml - 检查XPath中属性的默认值

c# - 为什么有人会在 C# 中使用 "in"参数修饰符?

java - 带有转义字符 '#' 的 JXPath 表达式会出现问题