TIA Attribute aus XML auslesen, VB

Supermario73

Level-2
Beiträge
77
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen
Möchte eine XML Datei auslesen mit Attributen. Es ist mir nicht klar wie die Attribute gelesen werden können.
Zuerst als Beispiel ein xml File:
Code:
[LEFT][COLOR=#333333][FONT=Menlo]<current>
<city id="2643743" name="London">
<coord lon="-0.13" lat="51.51"/>
<country>GB</country>
<timezone>3600</timezone>
<sun rise="2019-09-23T05:47:32" set="2019-09-23T17:58:36"/>
</city>
<temperature value="291.15" min="289.15" max="293.71" unit="kelvin"/>
<humidity value="55" unit="%"/>
<pressure value="1012" unit="hPa"/>
<wind>
<speed value="5.1" unit="m/s" name="Gentle Breeze"/>
<gusts/>
<direction value="240" code="WSW" name="West-southwest"/>
</wind>
<clouds value="40" name="scattered clouds"/>
<visibility value="10000"/>
<precipitation mode="no"/>
<weather number="521" value="shower rain" icon="09d"/>
<lastupdate value="2019-09-23T10:56:30"/>
</current>
[/FONT][/COLOR][/LEFT]

Um ein Node zu lesen verwenden wir folgenden code:
Code:
On Error Resume Next
Dim xmlFile
Dim ChildNode, field, Nodelist, i
Dim forecasttag, node, x

Set xmlFile = CreateObject("Microsoft.XMLDOM")

If xmlFile.Load("C:\wetter.xml") Then
   Set ChildNode =  xmlFile.documentElement.selectSingleNode("current/country")   
   SmartTags("Wetterdaten_country") = ChildNode.text
End If

If Err.Number <> 0 Then
 ShowSystemAlarm "Error #" & CStr(Err.Number) & " " & Err.Description
 Err.Clear
 Exit Sub
End If

Wie kann nun zum Beispiel der "name" = (London) gelesen werden? item.getAttribute?

Komme nicht weiter. Für einen Tipp bin ich sehr dankbar.
 
Hallo zusammen
Ich habs gefunden wie es zu lesen ist, anbei die Lösung:

Code:
Sub Read_current_xml()
On Error Resume Next
Dim xmlFile, XMLroot
Dim ChildNode, field, Nodelist


Set xmlFile = CreateObject("Microsoft.XMLDOM")
If xmlFile.Load("C:\test.xml") Then

Set XMLroot= xmlFile.documentElement
       
  
SmartTags("Wetterdaten_lat") = xmlFile.SelectSingleNode("current/city").Attributes.getNamedItem("id").Text
SmartTags("Wetterdaten_name") = xmlFile.SelectSingleNode("current/city").Attributes.getNamedItem("name").Text
SmartTags("Wetterdaten_lat") = xmlFile.SelectSingleNode("current/city/coord").Attributes.getNamedItem("lat").Text
SmartTags("Wetterdaten_lon") = xmlFile.SelectSingleNode("current/city/coord").Attributes.getNamedItem("lon").Text
SmartTags("Wetterdaten_sun_set") = xmlFile.SelectSingleNode("current/city/sun").Attributes.getNamedItem("set").Text
SmartTags("Wetterdaten_sun_rise") = xmlFile.SelectSingleNode("current/city/sun").Attributes.getNamedItem("rise").Text
SmartTags("Wetterdaten_temperature_max") = xmlFile.SelectSingleNode("current/temperature").Attributes.getNamedItem("max").Text
SmartTags("Wetterdaten_temperature_min") = xmlFile.SelectSingleNode("current/temperature").Attributes.getNamedItem("min").Text
SmartTags("Wetterdaten_temperature") = xmlFile.SelectSingleNode("current/temperature").Attributes.getNamedItem("value").Text
SmartTags("Wetterdaten_humidity") = xmlFile.SelectSingleNode("current/humidity").Attributes.getNamedItem("value").Text
SmartTags("Wetterdaten_pressure") = xmlFile.SelectSingleNode("current/pressure").Attributes.getNamedItem("value").Text
SmartTags("Wetterdaten_wind_speed") = xmlFile.SelectSingleNode("current/wind/speed").Attributes.getNamedItem("value").Text
SmartTags("Wetterdaten_wind_direction") = xmlFile.SelectSingleNode("current/wind/direction").Attributes.getNamedItem("value").Text
SmartTags("Wetterdaten_wind_code") = xmlFile.SelectSingleNode("current/wind/direction").Attributes.getNamedItem("code").Text
SmartTags("Wetterdaten_Clouds_description") = xmlFile.SelectSingleNode("current/clouds").Attributes.getNamedItem("name").Text
SmartTags("Wetterdaten_Clouds_procent") = xmlFile.SelectSingleNode("current/clouds").Attributes.getNamedItem("value").Text
SmartTags("Wetterdaten_visibility") = xmlFile.SelectSingleNode("current/visibility").Attributes.getNamedItem("value").Text
SmartTags("Wetterdaten_precipitation") = xmlFile.SelectSingleNode("current/precipitation").Attributes.getNamedItem("mode").Text
SmartTags("Wetterdaten_precipitation_mm") = xmlFile.SelectSingleNode("current/precipitation").Attributes.getNamedItem("value").Text
SmartTags("Wetterdaten_Weather_description") = xmlFile.SelectSingleNode("current/weather").Attributes.getNamedItem("value").Text
SmartTags("Wetterdaten_Weather_Nr") = xmlFile.SelectSingleNode("current/weather").Attributes.getNamedItem("number").Text
SmartTags("Wetterdaten_last_update") = xmlFile.SelectSingleNode("current/lastupdate").Attributes.getNamedItem("value").Text

End If

If Err.Number <> 0 Then
 ShowSystemAlarm "Error #" & CStr(Err.Number) & " " & Err.Description
 Err.Clear
 Exit Sub
End If
' Tidy up -- Aufraeumen
ShowSystemAlarm "Aktuelle Wetterdaten wurde erfolgreich verarbeitet!"
End Sub
 
Zurück
Oben