Re: XML auslesen, mainNode.... kann man den ändern?
Verfasst: 13.02.2013 16:08
@Helpy: Das war ein guter Hinweis, hier der funktionierende Code.
An alle Beteiligten: VIELEN DANK
Gruß Helmut
An alle Beteiligten: VIELEN DANK
Code: Alles auswählen
EnableExplicit
Define RootNode
Define SensorListNode
Define SensorNode
#XML = 1
Structure sSensor
ID.s
Type.s
Min.s
Max.s
Value.s
Display.s
EndStructure
NewList Sensor.sSensor()
InitNetwork()
If URLDownloadToFile_(0,"http://192.168.0.140/sensorList.xml", "c:\Test_1_Helmut.xml",0,0)
;Debug "OK "
Else
;Debug "Fehler "
EndIf
;Debug "drin"
LoadXML(#XML, "C:\Test_1_Helmut.xml");GetTemporaryDirectory()+"Example.xml")
If XMLStatus(#XML) <> #PB_XML_Success
MessageRequester( "XML Error", "Error: " + XMLError(#XML) )
End
EndIf
RootNode = RootXMLNode(#XML)
;Debug "drin1" ; funktioniert
If RootNode
;Debug "drin2" ; funktioniert
SensorListNode = XMLNodeFromPath(RootNode, "SensorList")
;Debug "drin3"
If SensorListNode
; Debug "drin4" ; nothing
SensorNode = XMLNodeFromPath(SensorListNode, "Sensor")
While SensorNode
AddElement(Sensor())
Sensor()\ID = GetXMLNodeText(XMLNodeFromPath(SensorNode, "ID"))
Sensor()\Type = GetXMLNodeText(XMLNodeFromPath(SensorNode, "Type"))
Sensor()\Min = GetXMLNodeText(XMLNodeFromPath(SensorNode, "Min"))
Sensor()\Max = GetXMLNodeText(XMLNodeFromPath(SensorNode, "Max"))
Sensor()\Value = GetXMLNodeText(XMLNodeFromPath(SensorNode, "Value"))
Sensor()\Display = GetXMLNodeText(XMLNodeFromPath(SensorNode, "Display"))
SensorNode = NextXMLNode(SensorNode)
Wend
;EndIf
EndIf
FreeXML(#XML)
EndIf
; Ergebnisse anzeigen
ForEach Sensor()
Debug "ID: " + Sensor()\ID
Debug "Type: " + Sensor()\Type
Debug "Min: " + Sensor()\Min
Debug "Max: " + Sensor()\Max
Debug "Value: " + Sensor()\Value
Debug "Display: " + Sensor()\Display
Debug "---"
Next