.NET的XPath函数提供了诸如SelectSingleNode
和SelectNodes
之类的常用功能。他们只能仅找到XPath查询指定的子节点。
但是,如果我想测试当前节点是否符合给定的XPath规范,该怎么办?如何运作?
假设我有一个HTML文档,在其中找到了一个table
节点。
<table>
<tr>
<td>...</td>
<tr>
<tr class="abc">
<td>...</td>
</tr>
</table>
我可以从那里找到所有tr
个元素。一旦到达tr
元素(我也可以通过导航而不是XPath到达那里),我想知道它是否符合某些条件。最好将它们指定为XPath字符串。
这就是我要寻找的:
XmlNode trNode = ...;
bool result = trNode.Matches("tr[@class='abc']");
.NET的(非常有限的)XPath功能支持吗?或者,如果有所不同,请使用 HtmlAgilityPack 软件包?
答案 0 :(得分:1)
[...]如果我要测试当前节点是否与给定的XPath规范匹配,怎么办?
您可以使用self::
轴进行确认。
因此,如果您当前的节点是tr
,并且您想检查当前的tr
元素是否是具有值为class
的{{1}}属性的元素,请使用以下XPath表达式:
abc
我想这就是您想要的,不是吗?