XPath使用C#中的正则表达式匹配()

时间:2011-06-22 22:48:54

标签: c# regex xpath

更新:我在 - Adding XPath 2.0 functionality and variables to .NET XPath(我的博客)写了我所做的事情,包括源代码和值得关注的事项。

有没有办法将正则表达式传递给.NET中的XPath语句的matches()?

示例:执行

的xpath
"/windward-studios/Employees/Employee[matches(string(LastName), '.*A?B[12]C.*')]"

2 个答案:

答案 0 :(得分:5)

XPath 2.0支持匹配功能。但是,.Net实现了XPath 1.0。

您需要添加自定义函数才能实现匹配。见http://msdn.microsoft.com/en-us/library/ms950806.aspx

看起来像Mvp.Xml项目:EXSLT.NET模块实现了XPath 2.0的大部分内容;包括比赛。见http://mvp-xml.sourceforge.net/exslt/

答案 1 :(得分:0)

微软的XSLT处理器不支持XSLT 2.0,但.NET上至少有两个可用的处理器:Saxon和XQSharp。

微软基本上已经决定与Linq一起走专有路线,如果你想坚持基于标准的方法,你将不得不去第三方。