Entwickler-Ecke
Datenbanken - verschachtelte Knoten abfragen XML
basner - Mi 17.06.09 15:36
Titel: verschachtelte Knoten abfragen XML
Hallo vielleicht könnt ihr mir noch einmal helfen.
Ich habe folgendes Problem:
Ich habe innerhalb einer XML Datei folgende Struktur
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| - <Articles> - <Article id="ArtikelNummer" name="Name des Artikels" price="Preis des Artikels" configLines="2"> - <ClientGroups> <ClientGroup templateID="1" /> </ClientGroups> - <Features> <FeatureValue templateID="ein Wert" deliveryTypeID="STD" value="0" /> <FeatureValue templateID="Wert2" deliveryTypeID="STD" includeInOrder="false" value="0.08" /> <FeatureValue templateID="Wert3" deliveryTypeID="STD" value="0" /> <FeatureValue templateID="Wert4" deliveryTypeID="STD" value="0" /> + <FeatureEnum templateID="Wert5" deliveryTypeID="STD"> <FeatureEnumItem value="Wert6" /> </FeatureEnum> </Article> |
Und habe nun wie unten folgend versucht schon einmal ein paar Daten raus zubekommen. Leider ergibt das aber ein Fehler.(Bestimmte Zeichen dürfen nicht enthalten sein).
Wie muss ich das verändern damit es passt und wie kann ich die anderen Kriterien mit einbauen??
<Article id="ArtikelNummer" > wiederholt sich wieder nach dem Abschnitt und leitet neuen Artikel ein, der durch </Article> abgeschlossen wird.
Delphi-Quelltext
1: 2: 3: 4:
| for n := 0 to XMLDocument1.DocumentElement.ChildNodes[KnotenListe.Nodes[3].ChildNodes[0].Attributes['name']].ChildNodes.Count -1 do begin Memo1.Lines.Add(Trim(XMLDocument1.DocumentElement.ChildNodes[KnotenListe.Nodes[3].ChildNodes[n].Attributes['name']].ChildNodes[n].Text)); end; |
:cry:
Stehe komplett auf dem Schlauch.
Moderiert von
Narses: Code- in Delphi-Tag gewandelt.
basner - Mi 17.06.09 16:38
Ok den ersten Teil der Lösung hab ich nicht gesehen.
Delphi-Quelltext
1: 2: 3: 4: 5:
| for i := 0 to KnotenListe.Nodes[3].ChildNodes.Count -1 do begin Memo1.Lines.Add(KnotenListe.Nodes[3].ChildNodes[i].Attributes['id']); Memo1.Lines.Add(KnotenListe.Nodes[3].ChildNodes[i].Attributes['name']); Memo1.Lines.Add(KnotenListe.Nodes[3].ChildNodes[i].Attributes['price']); end; |
Aber wie erhalte ich jetzt diese Werte dazu?
Quelltext
1:
| <Features> <FeatureValue templateID="ein Wert" deliveryTypeID="STD" value="0" /> <FeatureValue templateID="Wert2" deliveryTypeID="STD" includeInOrder="false" value="0.08" /> <FeatureValue templateID="Wert3" deliveryTypeID="STD" value="0" /> <FeatureValue templateID="Wert4" deliveryTypeID="STD" value="0" /> + <FeatureEnum templateID="Wert5" deliveryTypeID="STD"> <FeatureEnumItem value="Wert6" /> </FeatureEnum> |
Moderiert von
Narses: Code- in Delphi-Tag gewandelt.
basner - Do 18.06.09 16:49
Hallo. Habe nur eine kleine Frage.
Den Rest konnte ich lösen und das Dokument soweit einlesen bis auf diese Stelle:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| <Features> <FeatureValue templateID="ein Wert" deliveryTypeID="STD" value="0" /> <FeatureValue templateID="Wert2" deliveryTypeID="STD" includeInOrder="false" value="0.08" /> <FeatureValue templateID="Wert3" deliveryTypeID="STD" value="0" /> <FeatureValue templateID="Wert4" deliveryTypeID="STD" value="0" /> + <FeatureEnum templateID="Wert5" deliveryTypeID="STD"> <FeatureEnumItem value="Wert6" /> </FeatureEnum> </Features> |
Könnt Ihr mir einen Rat geben wie ich die TemplateID und die value dazu rauslesen kann.
Hat es irgendwas mit dem Enum zu tun?
Vielen Dank.
basner - Fr 19.06.09 17:04
Konnte es lösen. Hab den Wald vor lauter Bäumen nicht gesehen :wink:
FinnO - Fr 19.06.09 19:08
Ich lieeebe Monologe
Es wäre nett, wenn du die Lösung noch dazuschreiben könntest, weil so wie das Thema gerade ist kann da keiner etwas mit anfangen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!