gpt4 book ai didi

html - 使用 HtmlAgilityPack 获取 html 表的最后一个

转载 作者:行者123 更新时间:2023-11-28 05:00:59 25 4
gpt4 key购买 nike

我有一个 html 表格结构。我需要获取第一个<td>的值在决赛中 <tr>标签。这是我的表结构。我从下面的函数 getFinalNodeValue 中需要的值是“3”。

 <table id="test">
<tr>
<td>ID</td>
<td>Name</td>
<td>Age</td>
</tr>
<tr>
<td>1</td>
<td>Yasoda</td>
<td>21</td>
</tr>

<tr>
<td>2</td>
<td>Samantha</td>
<td>25</td>
</tr>

<tr>
<td>3</td>
<td>Sajee</td>
<td>26</td>
</tr>

</table>


这是我使用 HtmlAgilityPack 编写的代码。

 public String getFinalNodeValue(String URL)
{
var webGet = new HtmlWeb();
var pageSource = webGet.Load(URL);

var table = pageSource.DocumentNode.SelectSingleNode("//table[@id='test']//tr[1]");


string id = null;


IEnumerable<HtmlNode> trNodes = table.DescendantsAndSelf();

foreach (var currentItem in trNodes)
{
if (currentItem == trNodes.Last())
{
IEnumerable<HtmlNode> tdNodes = currentItem.Descendants();

foreach (var x in tdNodes)
{
if(x == tdNodes.First())
{
id = x.InnerText;
}
else
{
break;
}
}

}
else
{
continue;
}
}

return id;

}

该方法没有返回值。非常感谢任何帮助。

最佳答案

应该这样做:

    HtmlDocument doc = new HtmlDocument();
doc.Load(MyHtmlFile);

HtmlNode node = doc.DocumentNode.SelectSingleNode("//table[@id='test']/tr[last()]/td");
Console.WriteLine(node.InnerText);

注意 XPATH last() 的用法功能

关于html - 使用 HtmlAgilityPack 获取 html 表的最后一个 <tr>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15339142/

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