如何用C#和html-agility-pack获取html文件中的表的数量 [英] How to get the count of tables in an html file with C# and html-agility-pack

查看:123
本文介绍了如何用C#和html-agility-pack获取html文件中的表的数量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是一个新手问题,所以请提供工作代码。

如何使用C#和html-agility-pack来计算html文件中的表格?



(我将需要根据表的数量从html文件中的特定表中获取值,然后对检索到的值执行一些计算。)

p>

以下是一个包​​含三个表格的示例文件,方便您阅读:

 < ; HTML> 
< head>
< title>表< / title>
< / head>
< body>
< table border =1>
< tr>
< th>名称< / th>
< th>电话< / th>
City< / th>
< th> Number< / th>
< / tr>
< tr>
< td> Scott< / td>
< td> 555-2345< / td>
< td>芝加哥< / td>
< td> 42< / td>
< / tr>
< tr>
< td> Bill< / td>
< td> 555-1243< / td>
< td>底特律< / td>
< td> 23< / td>
< / tr>
< tr>
< td> Ted< / td>
< td> 555-3567< / td>
< td>哥伦布< / td>
< td> 9< / td>
< / tr>
< / table>
< p>< / p>
< table border =1>
< tr>
< th>名称< / th>
年份< / th>
< / tr>
< tr>
< td>亚伯拉罕< / td>
< td> 1865< / td>
< / tr>
< tr>
< td> Martin< / td>
< td> 1968< / td>
< / tr>
< tr>
< td> John< / td>
< td> 1963< / td>
< / tr>
< / table>
< p>< / p>
< table border =1>
< tr>
< th>动物< / gt;
< th>位置< / th>
< th> Number< / th>
< / tr>
< tr>
< td> Tiger< / td>
< td>丛林< / td>
< td> 8< / td>
< / tr>
< tr>
< td> Hippo< / td>
< td> River< / td>
< td> 4< / td>
< / tr>
< tr>
< td>骆驼< / td>
< td>沙漠< / td>
< td> 3< / td>
< / tr>
< / table>
< / body>
< / html>

如果您愿意,请显示如何将结果发送到新的文本文件。



谢谢!

解决方案


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

//递归获取所有TABLE元素
int count = doc.DocumentNode.SelectNodes(// table)。Count;

//输出到文本文件
File.WriteAllText(output.txt,count.ToString());


This is a newbie question so please provide working code.

How do I count the tables in an html file using C# and the html-agility-pack?

(I will need to get values from specific tables in an html file based on the count of tables. I will then perform some math on the values retrieved.)

Here is a sample file with three tables for your convenience:

<html>
<head>
<title>Tables</title>
</head>
<body>
<table border="1">
  <tr>
    <th>Name</th>
    <th>Phone</th>
    <th>City</th>
    <th>Number</th>
  </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>
    <th>Name</th>
    <th>Year</th>
  </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>
<table border="1">
  <tr>
    <th>Animal</th>
    <th>Location</th>
    <th>Number</th>
  </tr>
  <tr>
    <td>Tiger</td>
    <td>Jungle</td>
    <td>8</td>
  </tr>
  <tr>
    <td>Hippo</td>
    <td>River</td>
    <td>4</td>
  </tr>
  <tr>
    <td>Camel</td>
    <td>Desert</td>
    <td>3</td>
  </tr>
</table>
</body>
</html>

If you would, please SHOW how to send the results to a new text file.

Thanks!

解决方案

Something like this:

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

// get all TABLE elements recursively
int count = doc.DocumentNode.SelectNodes("//table").Count;

// output to a text file
File.WriteAllText("output.txt", count.ToString());

这篇关于如何用C#和html-agility-pack获取html文件中的表的数量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆