Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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# WP8上的HTML敏捷包用法_C#_Html Agility Pack - Fatal编程技术网

C# WP8上的HTML敏捷包用法

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>

这个问题是我在这里发布的一个关于解析HTML的问题的后续问题

我正在解析一个HTML页面,其中包含大量的tr标记,如下所示:

<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将移动到下一个节点。