HtmlAgilityPack在第一级选择节点

时间:2015-03-31 20:42:12

标签: html-agility-pack

考虑以下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")

将返回主<td>节点下方的所有<tr>元素。

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

2 个答案:

答案 0 :(得分:3)

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

gridRow.Elements("td")

答案 1 :(得分:2)

好的,我认为这样可行:

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

这将返回所有<td>元素,其直接父元素是主<tr>元素。