我正在使用 .net 4.0
我怎样才能重写以下xpath,才能有效
//Menu[fn:lower-case(./Link) = 'xyxysyx']
我收到此错误:
需要命名空间管理器或 XsltContext。此查询具有前缀、变量或用户定义的函数。
我不知道如何使用XmlNamespaceManager解决这个问题,我需要添加哪个命名空间...
如果我这样做,它会起作用:
//Menu[./Link = 'xyxysyx']
但我需要它是小写比较。
这是组合的上下文:
IEnumerable<System.Xml.Linq.XElement> menus = xml.Root.XPathSelectElements(xpath, namespaceManager);
请注意,我们可以将 XPathSelectElements 的第二个参数传递给 XmlNamespaceManager
编辑 这是带有翻译功能的工作示例:
//Menu[translate(./Link, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'yz']