Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在c中从HTML文件中检索特定的表?_C#_Web Scraping_Html Parsing - Fatal编程技术网

C# 如何在c中从HTML文件中检索特定的表?

C# 如何在c中从HTML文件中检索特定的表?,c#,web-scraping,html-parsing,C#,Web Scraping,Html Parsing,我有一个包含许多表的HTML文件,但我想从该文件而不是所有表中访问一个特定的表。 那我该怎么做呢? 代码如下所示,所有表都没有ID `<table border=1> <tr><td>VI not loadable</td><td>0</td></tr> <tr><td>Test not loadable</td><td>0</td></tr>

我有一个包含许多表的HTML文件,但我想从该文件而不是所有表中访问一个特定的表。 那我该怎么做呢? 代码如下所示,所有表都没有ID

`<table border=1>
<tr><td>VI not loadable</td><td>0</td></tr>
<tr><td>Test not loadable</td><td>0</td></tr>
<tr><td>Test not runnable</td><td>0</td></tr>
<tr><td>Test error out</td><td>0</td></tr>
</table>`

每个表都应该有一个Id或可以从其他表中识别的东西,如果是这样的话,您可以通过jquery获得它。例如:

 <table class="table table-striped" id="tbl1">
<thead>
  <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Email</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td>John</td>
    <td>Doe</td>
    <td>john@example.com</td>
  </tr>
  <tr>
    <td>Mary</td>
    <td>Moe</td>
    <td>mary@example.com</td>
  </tr>
  <tr>
    <td>July</td>
    <td>Dooley</td>
    <td>july@example.com</td>
  </tr>
</tbody>
如果没有,您可以通过文件中的优先级找到它。例如,您可以这样访问第二个表:

var table = $('table:nth-child(2)')
或者在C中,这可能会有所帮助:

HtmlNode table = doc.DocumentNode.SelectSingleNode("//table[1]")
foreach (var cell in table.SelectNodes(".//tr/td")) 
{
     string someVariable = cell.InnerText
}

问题是文件不包含任何id或类:我认为最好的解决方案是按优先级获取目标表,否则当表没有任何指示器时,请解释如何识别所需的选项,以便我可以帮助您实现一个好的解决方案。我使用此代码获取一个表,但它会返回文件中的所有表。我想检索一个特定的表:doc.DocumentNode.SelectNodes///table{///这是该表。表中的foreach HtmlNode行。SelectNodestr{Console.WriteLinerow.OuterHtml;行中的foreach HtmlNode单元格。SelectNodesth | td{///这是cell.Console.WriteLinehtml;}}}}我很高兴它能工作,让我高兴,并将它标记为正确答案:
HtmlNode table = doc.DocumentNode.SelectSingleNode("//table[1]")
foreach (var cell in table.SelectNodes(".//tr/td")) 
{
     string someVariable = cell.InnerText
}