2

Windows Phone 7 アプリケーションで次の 2 つのタスクを実行したいと考えています。

1. Web ページ (例: 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);

上記の2つの実装に相当するクラス/コードを手伝ってくれる人はいますか?

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 を使用して結果を C# に返すことできる任意の js コマンドを呼び出すことができます。

于 2012-08-02T07:38:36.037 に答える
0

質問が正しければ、Web ブラウザーisBusyのプロパティを使用して、まだデータをダウンロードしているかどうかを追跡し、まだビジー状態のときにスリープ状態にすることができます。

HTML ドキュメントを解析するには、NSoup ライブラリを使用して、jQuery と同じように HTML を解析できます。Java の JSoup ライブラリからのポートです。 http://www.developerfusion.com/project/98472/nsoup/

ここで説明されている構文: http://jsoup.org/cookbook/extracting-data/selector-syntax

于 2012-07-31T18:30:05.553 に答える
0

移動先の Web ページを所有している場合はwindow.external.notify(document.documentElement.innerHTML)、javascript で を使用して、ドキュメントの html をネイティブ レイヤーに渡すことができます。次に、ScriptNotify を使用してネイティブ コードで値をキャッチします。

もう少し複雑ですが、Web ページを所有していない場合は、独自の Web ページをホストし、元のページで 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 に答える