2016-04-27 18 views
0

Windows(10)Universalアプリケーションでvb.netでHTTP経由でXMLを読み取る方法がわかりました。私はすでにいくつかの可能性を試しましたが、私はそれらのどれも働かせることはできません。私を助けることができる人?Windows(10)ユニバーサルアプリケーションでvb.netのXML over HTTPを読む

挨拶

編集:私はすでにXDocumentに私のXMLコードを得ることができました。誰でも私がそれをさらに読んでそこから特定のアイテムを取る方法を知っていますか?あなたはaleady XDocumentであなたのXMLコードを取得し、私はあなたのxmlを持っていない、我々は次のようなXMLを持っていると仮定しているので

Dim xml As String = String.Empty 
    Dim url As New Uri(Convert.ToString((link))) 
    Dim httpClient As New HttpClient() 
    httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "text/html,application/xhtml+xml,application/xml") 
    Dim response = Await httpClient.GetAsync(url) 
    Using responseStream = Await response.Content.ReadAsStreamAsync() 
     Using streamReader = New StreamReader(responseStream) 
      xml = streamReader.ReadToEnd() 
     End Using 
    End Using 
    Dim xDoc As XDocument = XDocument.Parse(xml) 
+0

ウェブページはXMLページですか?はいの場合は、単にXDocument.Load(URL)を使用できます。これが動作しない場合は、wiresharkやfiddlerのようなスニファを使うことをお勧めします。 IEを使用してxmlをダウンロードし、スニッファの結果をvb.netコードと比較することができます。私は2つの方法とhttpヘッダーを比較し、違いを見つけるだろう。アプリケーションをできるだけIEの結果のように見せてください。 – jdweng

+0

HTTP経由でXMLを読むのはどういう意味ですか? HTTP戻り値を持つHttpリクエスト? –

+0

@sunteen私はプレーンxmlのhttpウェブページを持っています。 – Boaz

答えて

0

<Root> 
    <Father> 
     <Child1>data1</Child1> 
     <Child2>data2</Child2> 
    </Father> 
</Root> 

をし、次の我々は読ん必要特定の項目。 XElementクラスを使用してノードを読み取ることができます。例えば は、これらが全体のノードを取得しますあなたのxDoc

サブノード

Dim childnode As XElement = root.Element("Father").Element("Child1") 

と同じ

Dim xDoc As XDocument = XDocument.Parse(xml)  
Dim root As XElement = xDoc.Root 
Dim Fathernode As XElement = root.Element("Father") 

からFatherという名前のノードを取得します。あなただけのノードの値を取得したい場合は、

Dim value As String= root.Element("Father").Element("Child1").Value 

以上を用いて詳細はXElement Classを参照してください。

+0

問題は、私は以下のように同じタグ名を使用してXMLを持っています ..... ..... ..... ..... ..... Boaz

+0

だから私は、あなたが( "ホテル")のXElement = srcTree.Root 薄暗いhotelnodes = root.Elementとして '薄暗いルートを使用することができ、XML – Boaz

+0

@Boazにナビゲートし、管理することができなければならない。要素(」ホテル ")。ToList'コレクションを取得し、foreachなどでそれらに対処する。ノードを頻繁に配置する必要がある場合は、別の方法[Xpath](https://support.microsoft.com/en-us/kb/301220)を使用できます。それでも解決できない場合は、詳細と正確な要件を示し、完全なデモをお願いします。ところで、私の答えがあなたを助けてくれたと思ったら、印を付けてください。 –

関連する問題