我不确定如何添加动态Xpath以使我们能够在HTML中找到最里面的表(作为IEnumerable / List),无论它们处于什么级别
基本上如果我有:
<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>
我试图用包含thisguy的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
}
}
答案 0 :(得分:1)
试试这段代码:
var innerTables = doc.DocumentNode.SelectNodes("//table[not(descendant::table)]");
在那里使用的XPath将获得所有没有表作为后代的表节点。