XML auslesen, mainNode.... kann man den ändern?
Verfasst: 13.02.2013 01:20
Ich habe folgende Frage: Wie lese ich diese XML aus, ich habe es mit dem Beispiel versucht, nur diese "MainNode" verstehe ich nicht..
Bitte um Hilfe mit einem einfachen Beispiel. Dafür vielen Dank !!
Mein Code sieht so aus:
XML ist Dieses:
Bitte um Hilfe mit einem einfachen Beispiel. Dafür vielen Dank !!
Mein Code sieht so aus:
Code: Alles auswählen
#XML = 1
Procedure ReadChildNodes(*Node, Tag$, List result.s())
*ChildNode = ChildXMLNode(*Node)
While *ChildNode <> 0
If GetXMLNodeName(*ChildNode) = Tag$ ; Tag gefunden
AddElement(result())
result() = GetXMLNodeText(*ChildNode)
EndIf
If XMLChildCount(*ChildNode)
ReadChildNodes(*ChildNode, Tag$, result())
EndIf
*ChildNode = NextXMLNode(*ChildNode)
Wend
EndProcedure
InitNetwork()
ReceiveHTTPFile("http://192.168.0.140/sensorList.xml", GetTemporaryDirectory()+"Example.xml")
; Suche <SensorList> in Datei Example.xml
NewList result.s()
If LoadXML(#XML, GetTemporaryDirectory()+"Example.xml")
Debug "XML_Seite gelesen"
*MainNode = MainXMLNode(#XML)
If *MainNode
Debug "ersten Eintrag gelesen"
ReadChildNodes(*MainNode, "Sensor", result())
; Ergebnisse anzeigen
ForEach result()
Debug "-> " + result()
Next
EndIf
EndIf
Code: Alles auswählen
<?xml version="1.0" encoding="ISO-8859-1"?>
-<SensorList> -<Sensor> <ID>Nr 1</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02687</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 2</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02681</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 3</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02662</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 4</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02662</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 5</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02593</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 6</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02581</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 7</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02543</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 8</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02537</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 9</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02525</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 10</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02493</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 11</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02456</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 12</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02468</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 13</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02456</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr14</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>02425</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 15</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>00000</Value> <Display>021</Display> </Sensor> -<Sensor> <ID>Nr 16</ID> <Type>005</Type> <Min>02000</Min> <Max>03000</Max> <Value>00000</Value> <Display>021</Display> </Sensor> </SensorList>