XML元素源包含空格

时间:2016-04-13 11:59:09

标签: vb.net

我在阅读XML内容时非常新,现在我遇到的问题是某些XML元素包含空格,而VB.net不接受这个。

请查看以“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

3 个答案:

答案 0 :(得分:0)

元素<weerstation id="6391">名称中不包含空格。 空格表示下一个文字被视为Xml Attribute,其特定值为双引号(id="6391")。

以下是获取当前临时温度的方法:

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

我使用lambda表达式给出了第一个名为<weerstation>的元素,其中包含名为id的属性和值6391

我认为id是不正确的,因此.First() appraoch是正确的。

答案 1 :(得分:0)

完美无缺!

现在我的行​​

有类似的问题
<icoonactueel zin="bewolkt" ID="p">http://xml.buienradar.nl/icons/p.gif</icoonactueel>
<temperatuur10cm>11.3</temperatuur10cm>

根据天气的类型,bewolkt可以有不同的值,ID也会变化。我希望从这个元素中获得的唯一内容是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>

答案 2 :(得分:0)

试试这个......

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