如何使用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 2012
和XPath 2.0
(至少我认为是这样)。
如何在我的情况下使用matches
?
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, '*')]
,如果我没有弄错的话。