C# 如何在c中从HTML文件中检索特定的表?
我有一个包含许多表的HTML文件,但我想从该文件而不是所有表中访问一个特定的表。 那我该怎么做呢? 代码如下所示,所有表都没有IDC# 如何在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>
`<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
}