2

我想在 Windows Phone 7 应用程序中执行以下两项任务。

1.导航到网页(例如http://www.FlightsInd.com)并获取HTML页面数据。我想确保所有文档数据都已完全下载。

在 C#.Net 中,我使用以下代码执行此操作:

WebBrowser objWB = new WebBrowser();
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
objWB.Navigate("http://www.FlightsInd.com")

一旦触发 DocumentCompleted 事件,这意味着该请求中的所有数据都已下载。

2.解析HTML页面元素数据。

在 C#.Net 中,我使用以下代码执行此操作。

       doc = webBrowser1.Document;
       btnElem = doc.GetElementById(streleid);

任何人都可以帮助我处理上述两种实现的等效类/代码吗?

4

3 回答 3

4

使用WebBrowser Windows Phone 控件

导航到您的页面

browser.Navigate(new Uri(" http://www.FlightsInd.com "));

了解导航已完成并已加载内容

WebBrowser.Navigated 事件

WebBrowser.LoadCompleted 事件- 在 WebBrowser 控件加载内容后发生。

WebBrowser.NavigationFailed 事件- 跟踪导航失败

WebBrowser 类事件按以下顺序引发:Navigating、Navigated 和 LoadCompleted。

获取 Html 源代码

WebBrowser Windows Phone 控件包含特殊功能,可将当前显示在 WebBrowser 控件中的 HTML 内容的源保存为字符串:

字符串 html = browser.SaveToString();

解析 Html

查看HTML 敏捷包

在 C# 中解析 html 的最佳方法是什么?

解析 HTML 字符串

PS。或者,您可以使用webBrowser.InvokeScript (C#)和 js eval 的组合来调用任何可以在其中使用window.external.notify的 js 命令将结果传递回 C#。

于 2012-08-02T07:38:36.037 回答
0

如果我的问题是正确的,您可以使用网络浏览器isBusy属性来跟踪它是否仍在下载数据并在它仍然忙碌时休眠。

对于解析 html 文档,您可以使用 NSoup 库来解析 html,就像 jQuery 一样。它是来自 java 的 JSoup 库的一个端口。 http://www.developerfusion.com/project/98472/nsoup/

此处解释语法:http: //jsoup.org/cookbook/extracting-data/selector-syntax

于 2012-07-31T18:30:05.553 回答
0

如果您拥有要导航到的网页,则可以window.external.notify(document.documentElement.innerHTML)在您的 javascript 中使用将文档 html 传递到本机层。然后,您将使用 ScriptNotify 捕获本机代码中的值。

稍微复杂一点,但如果您不拥有该网页,您可以托管自己的网页,使用原始页面打开 iframe,然后从 iframe 获取 html。

有关 window.external.notify 的更多信息,请参见此处:http: //msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.scriptnotify (v=vs.95).aspx

于 2012-08-01T18:33:39.463 回答