更新:我寫下了我在源碼和注意事項上所做的 - Adding XPath 2.0 functionality and variables to .NET XPath(我的博客)。XPath使用C#中的正則表達式匹配()
有沒有辦法將正則表達式傳遞給.NET中的XPath語句的matches()?
實施例:做
"/windward-studios/Employees/Employee[matches(string(LastName), '.*A?B[12]C.*')]"
更新:我寫下了我在源碼和注意事項上所做的 - Adding XPath 2.0 functionality and variables to .NET XPath(我的博客)。XPath使用C#中的正則表達式匹配()
有沒有辦法將正則表達式傳遞給.NET中的XPath語句的matches()?
實施例:做
"/windward-studios/Employees/Employee[matches(string(LastName), '.*A?B[12]C.*')]"
的XPath的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/
非常感謝! –
微軟的XSLT處理器不支持XSLT 2.0,但在.NET上至少有兩個可用的:Saxon和XQSharp。
微軟基本上是在一段時間之前決定走下Linq的專有路線,如果你想堅持一個基於標準的方法,你將不得不去第三方。
你能提供一些你正在嘗試做什麼的例子嗎? – cordsen
有趣。沒有必要使用這個xpath功能,所以我不知道它在.NET中不被支持,直到看到答案。看起來像這個其他帖子http://stackoverflow.com/questions/1525299/xpath-and-xslt-2-0-for-net涵蓋了在.NET中提供支持的庫。 – bronsoja