1
我使用.NET 4.0使用XSLT小写功能
我怎么可以重写下面的XPath,为有效
//Menu[fn:lower-case(./Link) = 'xyxysyx']
我收到此错误:
Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.
我不知道如何解决这个问题XmlNamespaceManager我需要添加哪个命名空间...
,如果我做这样的工作原理:
//Menu[./Link = 'xyxysyx']
,但我需要的是小写比较。
这里是哪里,这是结合上下文:
IEnumerable<System.Xml.Linq.XElement> menus = xml.Root.XPathSelectElements(xpath, namespaceManager);
注意,我们可以通过XPathSelectElements塞康参数,它是XmlNamespaceManager的
编辑 与翻译功能在这里工作例如:
//Menu[translate(./Link, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'yz']
你尝试这样'//Menu[lower-case(./Link)= 'xyxysyx']'。同样在你的代码中,结束方括号缺失 – Jayy
可悲的是,你不能感谢微软没有真正推进对XSLT的支持。请参阅http://stackoverflow.com/questions/4125130/namespaces-for-xslt-using-net的替代方案(这也是我投票结束的原因)。 – dash
我忘了写在这里,但它存在,现在我将编辑帖子 –