2016-04-13 12 views
0

XMLコンテンツを読み込むのが非常に新しいので、XML要素に空白が含まれていてVB.netがこれを受け入れないという問題が発生しています。XML要素のソースに空白が含まれています

"Today_CurrentTemp"で始まるコード行を見てください。この行では要素を見つけますが、XDocumentではスペースや引用符は受け入れられません。

どうすればいいですか? XMLソース形式を変更することはできません。

Const URL As String = "http://xml.buienradar.nl/"    
Try 
      Dim xml = XDocument.Load(URL) 


      Today_DescriptionShort = xml.<buienradarnl>.<weergegevens>.<verwachting_vandaag>.<samenvatting>.Value 
      Today_DescriptionLong = xml.<buienradarnl>.<weergegevens>.<verwachting_vandaag>.<tekst>.Value 
      Today_CurrentTemp = xml.<buienradarnl>.<weergegevens>.<actueel_weer>.<weerstations>.<weerstation id="6391">.<temperatuurGC>.Value 
+0

...これを試してみてください。そうでない場合は、多分あなたの質問を更新すると思います.... http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 – Monty

答えて

0

要素<weerstation id="6391">は、そのに空白文字が含まれていません。 空白は、次のリテラルが二重引用符(id="6391")の特定の値を持つXml Attributeとみなされることを示します。ここで

は、現在の温度を取得する方法である:

Today_CurrentTemp = xml.<buienradarnl>.<weergegevens>.<actueel_weer>.<weerstations>.<weerstation>.Where(Function (x) x.Attribute("id") = "6391").First().<temperatuurGC>.Value 

私は私にidと値6391という名前の属性で<weerstation>名前付き要素の最初のoccuranceを与えるためにラムダ式を使用していました。

idが一意であると仮定して、.First()アプライアンスが正しいとします。

0

これは完全に機能します。

は今、私はラインbewolktは天候の種類に基づいて、WELとして異なる値とIDの変更を持つことができます

<icoonactueel zin="bewolkt" ID="p">http://xml.buienradar.nl/icons/p.gif</icoonactueel> 
<temperatuur10cm>11.3</temperatuur10cm> 

と同様の問題を持っています。私がこの要素から欲しいのはURLだけです。

これを処理する方法は?

は、一例として、以下のXMLの一部を参照してください。

<weerstation id="6391"> 
<stationcode>6391</stationcode> 
<stationnaam regio="Venlo">Meetstation Arcen</stationnaam> 
<lat>51.30</lat> 
<lon>6.12</lon> 
<datum>04/13/2016 11:50:00</datum> 
<luchtvochtigheid>83</luchtvochtigheid> 
<temperatuurGC>10.5</temperatuurGC> 
<windsnelheidMS>2.12</windsnelheidMS> 
<windsnelheidBF>2</windsnelheidBF> 
<windrichtingGR>123.0</windrichtingGR> 
<windrichting>OZO</windrichting> 
<luchtdruk>-</luchtdruk> 
<zichtmeters>-</zichtmeters> 
<windstotenMS>3.7</windstotenMS> 
<regenMMPU>-</regenMMPU> 
<icoonactueel zin="bewolkt" ID="p">http://xml.buienradar.nl/icons/p.gif</icoonactueel> 
<temperatuur10cm>11.3</temperatuur10cm> 
+0

「ジン」と「ID」の属性は何ですか?またはそれを 'bewolkt'や' p'のみにフィルタリングしたいのですか? –

+0

Btw ...通常、この質問に回答としてマークしてください(自分の回答の横にあるチェックマークをクリックしてください)。新しい質問で新しい質問を作成してください。 SOはシングルQ&Aを扱うのが好きです。 –

0

私たちは、あなたの問題が解決されていることを願っていますJurian Groeneveld @

Const URL As String = "http://xml.buienradar.nl/" 
Sub Main() 
    Dim Today_DescriptionShort 
    Dim Today_DescriptionLong 
    Dim Today_CurrentTemp 
    Try 
     Dim xsrcdoc = XDocument.Load(URL) 

     Today_DescriptionShort = (From xml In xsrcdoc.Descendants("verwachting_vandaag") 
            Select New With {.Val = xml.Element("samenvatting").Value}).FirstOrDefault 

     Today_DescriptionLong = (From xml In xsrcdoc.Descendants("verwachting_vandaag") 
           Select New With {.Val = xml.Element("tekst").Value}).FirstOrDefault 

     Today_CurrentTemp = (From xml In xsrcdoc.Descendants("weerstation").Where(Function(x) x.Attribute("id").Value = "6391") 
          Select New With {.Val = xml.Element("temperatuurGC").Value}).FirstOrDefault 

    Catch ex As Exception 

    End Try 
End Sub 
関連する問題