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

更新:我写了我做了什么,包括源代码和需要注意的事项, – 在.NET XPath (我的博客)中添加XPath 2.0function和变量 。

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

示例:执行xpath

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

XPath 2.0支持匹配function。 但是,.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/

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

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