Thema: Delphi XML Parsen

Einzelnen Beitrag anzeigen

kingflo

Registriert seit: 21. Jun 2004
Ort: Hamburg
502 Beiträge
 
Delphi 7 Professional
 
#1

XML Parsen

  Alt 3. Nov 2006, 09:42
Hallo.. ich habe ein problem mit einem Result, den ich als XML bekomme...
und zwar bekomme ich den nicht richtig geparst.

Die XML Datei sieht folgendermaßen aus:

XML-Code:
<item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:Map">
  <item>
    <key xsi:type="xsd:string">UserID</key>
    <value xsi:type="xsd:string">10000200</value>
  </item>
  <item>
    <key xsi:type="xsd:string">UserName</key>
    <value xsi:type="xsd:string">soularis</value>
  </item>
  <item>
    <key xsi:type="xsd:string">firstname</key>
    <value xsi:type="xsd:string">Stefan</value>
  </item>
  <item>
    <key xsi:type="xsd:string">lastname</key>
    <value xsi:type="xsd:string">Schulze</value>
  </item>
  <item>
    <key xsi:type="xsd:string">country</key>
    <value xsi:type="xsd:string">DE</value>
  </item>
  <item>
    <key xsi:type="xsd:string">city</key>
    <value xsi:type="xsd:string">Hamburg</value>
  </item>
</item>

<item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:Map">
  <item>
    <key xsi:type="xsd:string">UserID</key>
    <value xsi:type="xsd:string">10000205</value>
  </item>
  <item>
    <key xsi:type="xsd:string">UserName</key>
    <value xsi:type="xsd:string">teichlotte</value>
  </item>
  <item>
    <key xsi:type="xsd:string">firstname</key>
    <value xsi:type="xsd:string">Iris</value>
  </item>
  <item>
    <key xsi:type="xsd:string">lastname</key>
    <value xsi:type="xsd:string">Teichmann</value>
  </item>
  <item>
    <key xsi:type="xsd:string">country</key>
    <value xsi:type="xsd:string">DE</value>
  </item>
  <item>
    <key xsi:type="xsd:string">city</key>
    <value xsi:type="xsd:string">Stocksee</value>
  </item>
</item>
<item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:Map">
  <item>
    <key xsi:type="xsd:string">UserID</key>
    <value xsi:type="xsd:string">10000204</value>
  </item>
  <item>
    <key xsi:type="xsd:string">UserName</key>
    <value xsi:type="xsd:string">yutha</value>
  </item>
  <item>
    <key xsi:type="xsd:string">firstname</key>
    <value xsi:type="xsd:string">Jutta</value>
  </item>
  <item>
    <key xsi:type="xsd:string">lastname</key>
    <value xsi:type="xsd:string">Liwanetz</value>
  </item>
  <item>
    <key xsi:type="xsd:string">country</key>
    <value xsi:type="xsd:string">DE</value>
  </item>
  <item>
    <key xsi:type="xsd:string">city</key>
    <value xsi:type="xsd:string">Hamburg</value>
  </item>
</item>
Ich hatte dann versucht es mit TJvSimpleXML zu parsen, und hatte z.B folgendes ausprobiert:

Delphi-Quellcode:
var
i:integer;
begin
XMLDoc.LoadFromString(memo1.Lines.Text);

  for i:=0 to xmldoc.Root.Items.Count-1 do begin
   showmessage(XmlDoc.Root.Items.Item[i].Items.ItemNamed['key'].Value);
   showmessage(XmlDoc.Root.Items.Item[i].Items.ItemNamed['value'].Value);
  end;


end;
Nur leider bekomme ich damit aus irgendeinem Grund nur die Informationen zum ersten User.. also nur diese hier...

XML-Code:
    <key xsi:type="xsd:string">UserID</key>
    <value xsi:type="xsd:string">10000200</value>
  </item>
  <item>
    <key xsi:type="xsd:string">UserName</key>
    <value xsi:type="xsd:string">soularis</value>
  </item>
  <item>
    <key xsi:type="xsd:string">firstname</key>
    <value xsi:type="xsd:string">Stefan</value>
  </item>
  <item>
    <key xsi:type="xsd:string">lastname</key>
    <value xsi:type="xsd:string">Schulze</value>
  </item>
  <item>
    <key xsi:type="xsd:string">country</key>
    <value xsi:type="xsd:string">DE</value>
  </item>
  <item>
    <key xsi:type="xsd:string">city</key>
    <value xsi:type="xsd:string">Hamburg</value>
Kann mir da vielleicht irgendwie jemand helfen? ich hatte schon viel versucht, aber es hat leider nichts geklappt.
Florian Gilde
  Mit Zitat antworten Zitat