我正在使用 .NET 4.0 并且我想使用 XPath 2.0 方法,例如 ([Matches()][1], [upper-case()][2], [lower-case()][3])尝试在文档中查找元素。
X 路径示例:"/MyDocument/MyNode[matches(@MyAttribute, 'MyValue', 'i')]"
我尝试过使用:
System.Xml.XPath.XPathNavigator.Compile()
System.Xml.XmlDocument.SelectNodes()
System.Xml.Linq.XDocument.SelectElements()
但我基本上抛出异常“UndefinedXsltContextException”(或类似的东西)。这可以在 .NET 4.0 中完成吗?如果可以,您能否提供一个关于如何设置它工作的小示例?
Thanks
.NET 目前不支持 XPath 2.0。有关更多详细信息和第三方替代方案,请参阅此问题:适用于 .NET 的 XPath 和 XSLT 2.0? https://stackoverflow.com/q/1525299
如果您不想使用第三方库,则可以使用 XPath 1.0 或 LINQ to XML 执行所需的最少查询来获取目标元素,然后使用 .NET 方法对数据执行其他操作以执行以下操作:所需的检查和修改:
-
Matches
= Regex.IsMatch http://msdn.microsoft.com/en-us/library/sdx2bds0.aspx- 请注意,XPath 正则表达式模式可能具有与 .NET 模式不同的元字符,因此可能需要进行一些转换。
-
upper-case
= String.ToUpper http://msdn.microsoft.com/en-us/library/ewdd6aed.aspx- 该链接还提到了文化/不变选项,以防您需要它们
-
lower-case
= String.ToLower http://msdn.microsoft.com/en-us/library/e78f86at.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)