2015-03-31 61 views
0

节点考虑下面的HTMLHtmlAgilityPack选择在第一级

<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") 

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

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

+0

这应有助于:http://stackoverflow.com/a/13187588/736079 – jessehouwing 2015-03-31 21:25:13

+0

可能是一个解决方案,但我想避免的XPath。 – 2015-03-31 21:26:39

回答

3

HtmlNode.Elements("child_name")正是你在找什么:

gridRow.Elements("td") 
1

好吧,我想这会工作:

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

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