【发布时间】:2019-09-02 12:35:50
【问题描述】:
我正在使用C# 和HTMLAgilityPack 解析一个HTML 表格,但并不是每一行都返回了所有td 元素。它获得了第一和第三和第四,但错过了第二。
我已经循环了代码,但不明白我哪里出错了。
HTML:
<tr>
<td>08:15</td>
<td>EZY891</td>
<td>London Gatwick</td>
<td>Cancelled</td>
<td><img class="bt_tweet_img" src="~/_Layouts/15/images/C5.PortOfJersey/content/Twitter_Logo_Blue.svg"alt="2019/09/02 08:15 GMT+00:00|EZY891"></td>
</tr>
代码 c#
//set the url we are interested in
string urlstring =
"http://www.jerseyairport.com/flight/Pages/arrivals.aspx";
//use HTML Agilitypack to do the rest
HtmlWeb web = new HtmlWeb();
HtmlDocument document = web.Load(urlstring);
foreach (HtmlNode flightdiv in
document.DocumentNode.SelectNodes("//table[@id='airport" + "arrivals"
+ "']/tbody//tr"))
{
foreach (HtmlNode col in flightdiv.SelectNodes("td"))
{
System.Diagnostics.Debug.WriteLine(col.InnerText);
}
}
我希望循环遍历每个元素,但它直接从 08:15 到 London Gatwick 缺少 EZY891
【问题讨论】:
-
该网站没有
<td>EZY891</td>的列。你从哪里得到这些信息的? -
您的网址错误,请使用
https://www.jerseyairport.com/Flight/Pages/Arrivals.aspx。如果您使用此处的那个,它会将您重定向到具有较少列的不同页面。 -
抱歉,我一定遗漏了什么。我正在使用网站jerseyairport.com/Flight/Pages/Arrivals.aspx。它有4列Sched./Flight No./Origin/Status。它返回 Sched./Origin/Status。即它错过了第二个航班号。
标签: c# html-agility-pack