第一层的 HtmlAgilityPack select 个节点

HtmlAgilityPack select nodes on first level

考虑以下 HTML

<tr>
  <td>1</td>
  <td>2</td>
  <td>
    <table>
      <tbody>
        <tr>
          <td>3</td>
          <td>4</td>
        </tr>
      <tbody>
    </table>
  </td>
  <td>5</td>
</tr>

我在这里想要的是将所有 <td> 元素作为主 <tr> 行的直接后代。 这意味着,我想要 1, 2 and 5.

我使用的代码

gridRow.Descendants("td")

将 return 主 <tr> 节点下的所有 <td> 元素。

HtmlAgilityPack 是否提供获取一级后代的功能(因为我找不到这样的方法)?

好的,我认为这会起作用:

 gridRow.Descendants("td").Where(x => x.ParentNode == gridRow)

这将 return 所有 <td> 元素,其直接父元素是主要的 <tr> 元素。

HtmlNode.Elements("child_name") 正是您要找的:

gridRow.Elements("td")