编程语言
首页 > 编程语言> > HTML解析C#

HTML解析C#

作者:互联网

我正在解析HTML文件,并且遇到了一些问题.

我正在使用以下代码:

编辑********************************

更新的代码现在可以使用了.

私有void PhoneApplicationPage_Loaded(对象发送者,RoutedEventArgs e)
        {

    WebClient client = new WebClient();
    client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);

    client.DownloadStringAsync(new Uri(@"http://www.SourceURL.com"));

}

void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    var html = e.Result;

    var doc = new HtmlDocument();
        doc.LoadHtml(html);

    var list = doc.DocumentNode.Descendants("div").ToList();


    var node = doc.DocumentNode.Descendants("div")
        .FirstOrDefault(x => x.Id == "FlightInfo_FlightInfoUpdatePanel")
        .Element("table")
        .Element("tbody")
        .Elements("tr").Aggregate("Flight list\n", (acc, n) => acc + "\n" + n.InnerHtml);
       // .Elements("td")

    this.scrollViewer1.Content = node;




       }

    }
}

这给了我这个结果.

现在将根据需要显示所有结果.

我的问题是:如何更改此代码以显示所有< tr>下的所有结果

编辑############################ XAML

ListBox Margin="6,6,-12,0" Name="listBox1">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Margin="0,0,0,17" Width="432" Height="Auto">

                            <TextBlock Text="{Binding Flight}" Foreground="#FF4BCCF5" FontSize="24" />
                            <TextBlock Text="{Binding Origin}" TextWrapping="Wrap" FontSize="22" Foreground="#FF969696" />
                            <TextBlock Text="{Binding Date}" TextWrapping="Wrap" FontSize="20" Foreground="#FF05C16C" />
                            <TextBlock Text="{Binding Time}" TextWrapping="Wrap" FontSize="20" />
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

解决方法:

假设您拥有与使用XElement时相同的可用方法,那么应该可以解决问题

var text = list.Descendants("div")
                 .FirstOrDefault(x => x.Id == "FlightInfo_FlightInfoUpdatePanel")
                 .Element("table")
                 .Element("tbody")
                 .Descendants("tr").Aggregate("",(acc,n)=>acc+"\n"+n.OuterHtml);

 this.textBlock2.Text = text;

标签:windows-phone-7,html-agility-pack,html,c,parsing
来源: https://codeday.me/bug/20191102/1989956.html