如何使用XPath选择所有节点'matches'在c#

本文关键字:matches 节点 XPath 何使用 选择 | 更新日期: 2023-09-27 18:11:31

我知道可能存在类似的问题,但我找不到答案,如何在C#XmlNode.SelectNodes方法中使用XPath字符串中的regex来解决问题。

我需要选择属性值与regex匹配的所有节点。我试图使用matches功能,像这样:

filtered_nodes = xml_node.SelectNodes("./*[matches(@Name, '*')]");

但无论如何我得到了System.Xml.XPath.XPathException

我正在使用MS VS 2012XPath 2.0(至少我认为是这样)。

如何在我的情况下使用matches ?

如何使用XPath选择所有节点'matches'在c#

Microsoft不支持有matches函数的XPath 2.0或XQuery 1.0。如果您想使用XPath 2.0或XQuery 1.0,可以使用第三方库,如XmlPrime,或者使用LINQ to XML。

表达式./*[matches(@Name, '*')]可能在XPath 1.0中表示为./*[contains(@Name, '*')],如果我没有弄错的话。