【发布时间】:2011-09-02 08:54:23
【问题描述】:
我有下面的代码来解析 html 页面的一部分。
我想知道的是如何将它输出到列表框或文本框。
每当我尝试时,我都会收到未处理的 exceltion 错误
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) {
var doc = new HtmlDocument();
doc.LoadHtml("http://www.sourceURL.com");
var node = doc.DocumentNode.Descendants("div").FirstOrDefault(x => x.Id == "FlightInfo_FlightInfoUpdatePanel");
var value = node.InnerHtml;
this.textBox1.Text = value;
异常错误是:
System.NullReferenceException was unhandled
Message: NullReferenceException
堆栈跟踪是:
at Auckland_Airport.MainPage.PhoneApplicationPage_Loaded(Object sender, RoutedEventArgs e)
at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)
HTML 布局是
<div id="FlightInfo_FlightInfoUpdatePanel">
<table cellspacing="0" cellpadding="0"><tbody>
<tr class=""><td class="airline"><img src="/images/airline logos/US.gif" title="US AIRWAYS. " alt="US AIRWAYS. " /></td><td class="flight">US5316</td><td class="codeshare">NZ46</td><td class="origin">Rarotonga</td><td class="date">02 Sep</td><td class="time">10:30</td><td class="est">21:30</td><td class="status">CHECK IN CLOSING</td></tr><tr class="alt"><td class="airline"><img src="/images/airline logos/NZ.gif" title="AIR NEW ZEALAND LIMITED. " alt="AIR NEW ZEALAND LIMITED. " /></td><td class="flight">NZ6</td><td class="codeshare"> </td><td class="origin">Los Angeles</td><td class="date">02 Sep</td><td class="time">19:15</td><td class="est">19:15</td><td class="status">DEPARTED</td></tr><tr class=""><td class="airline"><img src="/images/airline logos/AC.gif" title="Air Canada. " alt="Air Canada. " /></td><td class="flight">AC6093</td><td class="codeshare">NZ6</td><td class="origin">Los Angeles</td><td class="date">02 Sep</td><td class="time">19:15</td><td class="est">19:15</td><td class="status">DEPARTED</td></tr><tr class="alt"><td class="airline"><img src="/images/airline class="d
</div>
</div>
更清晰的 HTML
<div id="FlightInfo_FlightInfoUpdatePanel">
<table cellspacing="0" cellpadding="0"><tbody>
<tr class="">
<td class="airline"><img src="/images/airline logos/NZ.gif" title="AIR NEW ZEALAND LIMITED. " alt="AIR NEW ZEALAND LIMITED. " /></td>
<td class="flight">NZ8</td>
<td class="codeshare"> </td>
<td class="origin">San Francisco</td>
<td class="date">01 Sep</td>
<td class="time">17:15</td>
<td class="est">18:00</td>
<td class="status">DEPARTED</td>
</tr>
<tr class="alt">
<td class="airline"><img src="/images/airline logos/AC.gif" title="Air Canada. " alt="Air Canada. " /></td>
<td class="flight">AC6103</td>
<td class="codeshare">NZ8</td>
<td class="origin">San Francisco</td>
<td class="date">01 Sep</td>
<td class="time">17:15</td>
<td class="est">18:00</td>
【问题讨论】:
-
您的标记中是否有带有
id="DivName"的div?从您发布的 sn-p 中看不到任何内容。 -
@Darin 抱歉,刚刚编辑。我只是想从简单开始并在 FlightInfo_FlightInfoUpdatePanel div 中显示所有 html,然后我将解析各个 td。我就是无法输出。
-
什么时候会出现异常。可能您添加的堆栈跟踪不完整。
-
@Rhys,是因为找不到div而抛出的异常,还是尝试将值分配给文本框时抛出的异常?
-
@maxim 它构建得很好,但是当我尝试在模拟器上运行时,它会得到异常并突出显示
var value = node.InnerHtml;
标签: c# html windows-phone-7 silverlight-4.0 html-agility-pack