我正在尝试创建一个通过 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/