gpt4 book ai didi

C# HtmlAgilityPack 从特定的 h2 中选择表格

转载 作者:太空狗 更新时间:2023-10-29 15:05:59 27 4
gpt4 key购买 nike

我有一些 html:

<h2>Results</h2>
<div class="box">
<table class="tFormat">
<th>Head</th>
<tr>1</tr>
</table>
</div>

<h2>Grades</h2>
<div class="box">
<table class="tFormat">
<th>Head</th>
<tr>1</tr>
</table>
</div>

我想知道如何获得“结果”下的表格

我试过:

        var nodes = doc.DocumentNode.SelectNodes("//h2");

foreach (var o in nodes)
{
if (o.InnerText.Equals("Results"))
{
foreach (var c in o.SelectNodes("//table"))
{
Console.WriteLine(c.InnerText);
}
}
}

它有效,但它也得到了 Grades h2 下的表格

最佳答案

请注意,div 不在标题内分层,因此在那里查找它没有意义。

这对您有用 - 它会找到标题后的下一个元素:

if (o.InnerText.Equals("Results"))
{
var nextDiv = o.NextSibling;
while (nextDiv != null && nextDiv.NodeType != HtmlNodeType.Element)
nextDiv = nextDiv.NextSibling;
// nextDiv should be correct here.
}

您还可以编写更具体的 xpath 来查找该 div:

doc.DocumentNode.SelectNodes("//h2[text()='Results']/following-sibling::div[1]");

关于C# HtmlAgilityPack 从特定的 h2 中选择表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14040724/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com