【问题标题】:XPath matches() using regular expressions in C#XPath matches() 在 C# 中使用正则表达式
【发布时间】:2011-07-19 09:29:29
【问题描述】:

更新:我在Adding XPath 2.0 functionality and variables to .NET XPath(我的博客)上写下了我所做的事情,以及源代码和需要注意的事项。

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

示例:做一个

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

【问题讨论】:

标签: c# regex xpath


【解决方案1】:

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/

【讨论】:

  • 网核呢?
【解决方案2】:

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

微软前段时间基本上决定采用 Linq 走专有路线,如果你想坚持基于标准的方法,你将不得不求助于第三方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 2020-11-21
    • 1970-01-01
    • 2010-09-29
    • 2011-05-02
    • 2022-01-11
    • 2011-02-14
    相关资源
    最近更新 更多