使用c#和html- agile -pack在html表中添加Sum列
本文关键字:添加 Sum html html- agile -pack 使用 | 更新日期: 2023-09-27 18:12:17
当行数不可预测时,如何对特定表的特定列中的值求和?注意,标题行包含文本,并使用"而不是"。
使用下面的html示例,我希望对第一个表的第四列的值求和,并忽略所有其他表。
我假设第一步是获得第一个表中的行数,下一步是构造一个计算,执行忽略第一行的求和。
HTML例子;
<html>
<head>
<title>Tables</title>
</head>
<body>
<table border="1">
<tr>
<td>Name</td>
<td>Phone</td>
<td>City</td>
<td>Number</td>
</tr>
<tr>
<td>Scott</td>
<td>555-2345</td>
<td>Chicago</td>
<td>42</td>
</tr>
<tr>
<td>Bill</td>
<td>555-1243</td>
<td>Detroit</td>
<td>23</td>
</tr>
<tr>
<td>Ted</td>
<td>555-3567</td>
<td>Columbus</td>
<td>9</td>
</tr>
</table>
<p></p>
<table border="1">
<tr>
<td>Name</td>
<td>Year</td>
</tr>
<tr>
<td>Abraham</td>
<td>1865</td>
</tr>
<tr>
<td>Martin</td>
<td>1968</td>
</tr>
<tr>
<td>John</td>
<td>1963</td>
</tr>
</table>
<p></p>
</body>
</html>
这里是我用于其他目的的参考代码-(获取表计数)。
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
String html = "C:/TestFile.html";
HtmlDocument doc = new HtmlDocument();
doc.Load(html);
int count = doc.DocumentNode.SelectNodes("//table").Count;
// output to Console
Console.WriteLine(count.ToString());
Console.ReadLine();
}
}
}
谢谢!
还有一件事……您是否可以建议一些资源来帮助我理解语法,这样我就可以获得一点独立性。(我是HTML-Agility Pack的新手,几年前我用过一点c#)
我有HAP 1.4.6的CHM文件,我试图在Visual Studio的对象浏览器中导航HtmlAgilityPack,但我不明白我在那里看到的是什么。请告诉我一些可以帮助我开始的资源。如果你能给我提供更多的线索,我将不胜感激。
谢谢!
如果我理解正确的话,您想要的是第一个表的最后一列(跳过第一行)的和。
var sum = doc.DocumentNode.SelectSingleNode("//table")
.Elements("tr")
.Skip(1)
.Sum(tr => int.Parse(tr.Elements("td").Last().InnerText));
返回74