c# - 使用 XPath 测试当前节点
问题描述
.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包?
解决方案
[...] 如果我想测试当前节点是否符合给定的 XPath 规范怎么办?
您可以使用self::
轴进行检查。
因此,如果您的当前节点是tr
并且您想检查当前tr
元素是否是一个具有class
value 属性的元素abc
,请使用以下 XPath 表达式:
self::tr[@class='abc']
我想这就是你想要的,不是吗?
推荐阅读
- node.js - Sequelize 创建belongTo 实例与引用
- angular - Preventing to submit too many forms on angular
- .htaccess - 编辑查询字符串时的 .htaccess 重定向
- c# - 如何在wpf treeview中显示所有直接和间接子成员的计数
- common-lisp - 混淆 (write 'a) (write #\a) (write-char #\a) (write-char 'a)
- axios - 带有标题和正文的 Nuxt-Axios 帖子
- html - 如何使用css作为复选框
- python - PyCharm 可以从终端跟踪文件 URI 吗?
- python - 如何从beautifulsoup中的span标签中获取字符串
- reactjs - How to pass the username into multi pages in reactjs