C# HTMLAgilityPack-查找最里面的表

C# HTMLAgilityPack-查找最里面的表,c#,html,html-agility-pack,C#,Html,Html Agility Pack,我不确定如何添加动态Xpath,使我们能够在HTML中查找最里面的表(作为IEnumerable/列表),而不管它们处于什么级别 基本上如果我有: <table> <tr> <td> <table> <tr> <td> <table><tr&g

我不确定如何添加动态Xpath,使我们能够在HTML中查找最里面的表(作为IEnumerable/列表),而不管它们处于什么级别

基本上如果我有:

    <table>
       <tr>
         <td>
           <table>
              <tr>
                 <td>
                     <table><tr><td>thisguy</td></tr></table>
                 </td>
              </tr>
                 <td>
                     <table><tr><td>thisguy</td></tr></table>
                 </td>
              </tr>
           </table>
        </td>
       </tr>
    </table>

这个家伙
这个家伙
我正试图返回包含这个家伙的td表。当然,这只是一个例子。真正的表不包含这个

我尝试了一个递归函数,但结果是:

private static IEnumerable<HtmlNode> GetBottomMostTable(HtmlNode nodeToCheck)
    {
        var isTableExist = nodeToCheck
                    .Descendants("table")
                    .Any();
        if (isTableExist)
        {
            var bottomMost = GetBottomMostTable(nodeToCheck.ChildNodes.Descendants("table").First());
        }else
        {
            return nodeToCheck
        }
    }
私有静态IEnumerable GetBottomMostTable(HtmlNode nodeToCheck)
{
var isTableExist=nodeToCheck
.后代(“表”)
.Any();
如果(isTableExist)
{
var bottomMost=getbottomosttable(nodeToCheck.ChildNodes.subjections(“表”).First());
}否则
{
返回节点检查
}
}
尝试以下代码:

var innerTables = doc.DocumentNode.SelectNodes("//table[not(descendant::table)]");
此处使用的XPath将获取所有没有表作为子代的表节点。

可能的重复项