2011-07-21 14 views
2

Visual Basic 2010でインターネットから約120万のXMLファイルを作成するプログラムを作成しています。 「VARIABLE」は1と120万の間の数字であるVisual Basic .NETでインターネットからXMLを「読み込む」方法

website.com/xmlfeed.action?number=VARIABLE

:各ファイルのURLは次の形式です。ドキュメントを取得したら、XMLから特定の値が1つ必要です。ドキュメントツリーの該当するセクションは、次の形式になっています。

ここで抽出する必要があるデータは「値」です。

私は今日ウェブを検索していましたが、空の手が出てきました。私が見つけたものはすべて、無関係か、あまりにも複雑すぎて理解できませんでした。問題は、XMLに関連する用語に慣れていないことだと思います。

わかりやすい解決策やわかりやすい解決策へのリンクがあります。それはあまりにも多くのトラブルではない場合、私は学ぶために働く方法を説明してください。

+2

Google "linq to xml" –

答えて

2

ファイルのコピーをダウンロードするには、HttpWebRequestを使用します。インクリメント整数に基づいてURLを生成するループでは、GetResponse(または非同期の場合はBeginGetResponse)を呼び出すことができます。

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx

そこに多くのオプションがあるが、XMLにLINQのは、おそらく良い賭けであるファイルを解析します。 VBでのXMLへ

http://msdn.microsoft.com/en-us/library/bb387098.aspx

Dim requestPrefix = "website.com/xmlfeed.action?number=" 

For documentNumber = 1 To 1200000 
    Dim request = WebRequest.Create(requestPrefix & documentNumber) 
    request.Timeout = 5000 
    Dim response = request.GetResponse() 

    Using stream = response.GetResponseStream() 
     Dim xDocument = XDocument.Load(stream) 

     'Use Linq to Xml to get the value you are after from the XDocument. 
    End Using 
Next 
+0

申し訳ありませんが、私はまだ完全に失われています。 – Josh

+0

あなたはどこまで来ていますか?ファイルをダウンロードできますか? –

+0

ちょうど分かります:私はローカルストレージに移動するようにそれらをダウンロードする必要はありません、ちょうど値を取得します。 – Josh

1

LINQは、これはかなり無痛なります。 YMMVので、テストされていない次

Dim values = From index in Enumerable.Range(1, 2100000) 
      From doc in XDocument.Load(New Uri("http://website.com/xmlfeed.action?number=" & index)) 
      Select value in doc...<Value>.FirstOrDefault() 

これは、各XMLで最初の値のノードであなたのIEnumerableを与えるだろう。 XMLのサイズによっては、処理前にXDocument.Loadがxmlドキュメント全体をメモリにロードするため、このメソッドを変更する必要があります。

+0

@ジョシュ:彼はあなたに答えをくれました。 –

関連する問題