代码之家  ›  专栏  ›  技术社区  ›  ygoe

使用XPath测试当前节点

  •  0
  • ygoe  · 技术社区  · 6 年前

    .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文件 包裹?

    1 回复  |  直到 6 年前
        1
  •  4
  •   zx485 potemkin    6 年前

    […]如果我想测试当前节点是否匹配给定的XPath规范,该怎么办?

    你可以和医生核对一下 self:: 轴线。
    tr tr公司 元素是具有 class 属性的值 abc

    self::tr[@class='abc']