C# WP8上的HTML敏捷包用法
这个问题是我在这里发布的一个关于解析HTML的问题的后续问题 我正在解析一个HTML页面,其中包含大量的tr标记,如下所示:C# WP8上的HTML敏捷包用法,c#,html-agility-pack,C#,Html Agility Pack,这个问题是我在这里发布的一个关于解析HTML的问题的后续问题 我正在解析一个HTML页面,其中包含大量的tr标记,如下所示: <tr> <td class="first"> </td> <td > Origin </td> <td> Airline </td>
<tr>
<td class="first">
</td>
<td >
Origin
</td>
<td>
Airline
</td>
<td>
Flight Number
</td>
<td>
22 Feb 11:50
</td>
<td class="last">
Arrived 12:35
</td>
</tr>
FlightNumber
DueTime
arrival time
Origin
Airline
问题是,我想将每组5个TD值连接成一个字符串。目前,代码将每个项目分别添加到lisbox中,因此我基本上每个航班有5个条目,如下所示:
<tr>
<td class="first">
</td>
<td >
Origin
</td>
<td>
Airline
</td>
<td>
Flight Number
</td>
<td>
22 Feb 11:50
</td>
<td class="last">
Arrived 12:35
</td>
</tr>
FlightNumber
DueTime
arrival time
Origin
Airline
但我只想为每个航班添加一个条目,类似这样:
<tr>
<td class="first">
</td>
<td >
Origin
</td>
<td>
Airline
</td>
<td>
Flight Number
</td>
<td>
22 Feb 11:50
</td>
<td class="last">
Arrived 12:35
</td>
</tr>
FlightNumber
DueTime
arrival time
Origin
Airline
始发地-航空公司-航班号-到期-到达
每个航班都有tr标签,每个tr标签内都有上述信息。我不知道如何检测何时到达特定航班的标签末尾,以便将信息分组到一个字符串中,而不是单独添加每个td标签。在每个tr标记的开始或结束处都有一个空白字符串,但我同样无法解决如何将每个td标记的值连接到一个字符串中,而不是将每个值添加到单独的行中
有什么想法吗?您可能应该尝试添加一个计数为5的整数。然后从循环1到5,将结果添加到字符串或变量中。然后仅在第5个循环将该变量作为单个项转储到列表中。然后,您需要将计数器重置为0并重新开始
Int i =1;
String item = String.Empty;
foreach (HtmlNode node in htmlDocument.DocumentNode.SelectNodes("//td"))
{
if(i =<5)
{
item += node.ChildNodes[0].InnerHtml.Trim();
i++;
}
if (i == 5)
{
lstResults.Items.Add(item);
i = 0;
}
}
inti=1;
String item=String.Empty;
foreach(htmlDocument.DocumentNode.SelectNodes(“//td”)中的HtmlNode节点)
{
如果(i=我实际使用下面的实现实现实现了这一点
HtmlNodeCollection table = htmlDocument.DocumentNode.SelectNodes("//tr");
HtmlNodeCollection rows = table[0].SelectNodes("//td");
for (int i = 0; i < rows.Count; ++i)
{
string flight = rows[i].InnerHtml.Trim();
if (!flight.Contains(".jpg"))
{
item += flight + " - ";
}
else
{
lstFlights.Items.Add(item);
item = "";
}
}
HtmlNodeCollection表=htmlDocument.DocumentNode.SelectNodes(“//tr”);
HtmlNodeCollection行=表[0]。选择节点(“//td”);
对于(int i=0;i
Hmmm,这似乎导致了某种无限循环或导致应用程序内存不足。这是因为我忘了将计数器放在第一个循环中。我更新了代码,尝试一下。仍然不走运,它似乎只是在反复添加第一个条目。我想我需要一种不同类型的for循环,或者一种可以移动的for循环当它到达5时,g将移动到下一个节点。