Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML Parsen (https://www.delphipraxis.net/80120-xml-parsen.html)

kingflo 3. Nov 2006 08:42


XML Parsen
 
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.

Chewie 3. Nov 2006 09:16

Re: XML Parsen
 
Was du hast, ist kein XML-Dokument. Mag sein, dass ein Parser über den fehlenden Header hinwegsieht, aber XML-Dokumente dürfen nur ein Wurzelelement haben. Du hast aber 3.

kingflo 3. Nov 2006 09:31

Re: XML Parsen
 
mmm... wie könnte ich es denn sonst am bessten parsen?

marabu 3. Nov 2006 09:52

Re: XML Parsen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Florian,

wenn die Datei wirklich so aussieht, dann kannst du einfach beim Einlesen das root document element ergänzen.

Grüße vom marabu

DGL-luke 3. Nov 2006 10:17

Re: XML Parsen
 
JvSimpleXML sollte da auch meckern, wenns mehr als ein root-element gibt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz