Entwickler-Ecke
Dateizugriff - XML + doppelte nodes auslesen
bjacke - Sa 27.11.04 20:47
Titel: XML + doppelte nodes auslesen
Hi, ich habe follgendes Probelem. Ich habe eine XML, die so aussieht.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| - <client_state> - <project> <master_url>http://delphi.de/</master_url> <project_name>geheim</project_name> </project> - <project> <master_url>http://delphi-forum.de/</master_url> <project_name>das ist hier</project_name> </project> </client_state> |
Meine Frage ist jetzt, wie kann ich auf die unterschiedlichen "project_name"s zugreifen. Nutze MS XML 4.0.
ScorpionKing - So 28.11.04 09:11
Welche Komponente benutzt du? Ich glaube nicht das MS XML 4.0 eine für Delphi ist, oder?
Delete - So 28.11.04 09:36
@ScorpionKing: Nein, Microsoft XML 4 ist keine Komponente. Wenn es aber installiert ist, kann man es als Typbibliothek für Delphi importieren und dann recht einfach XML-Dateien bearbeiten. Es gibt auch einige
BEITR?GE im Forum zu diesem Thema.
@bjacke: Hast du denn schon mal mit MS-XML gearbeitet? Es wäre einfacher, wenn du ein bisschen Quellcode zeigst, damit man weiß, ob du schon Ahnung hast, oder ob eine entsprechende Antwort umfangreicher ausfallen müsste. Grundsätzlich empfehle ich dir die Forensuche nach
XPATH XML (oder nach
SELECTNODES XML). In deinem Fall wäre der passende
XPath-String
Quelltext
1:
| //client_state/project |
Ob dir das schon weiterhilft, weiß ich jetzt nicht, aber unter den Suchergebnissen gibt es ein
Beispiel [
http://www.delphi-forum.de/viewtopic.php?p=121751#121751], das vllt. schon ein paar Fragen beantwortet.
bjacke - So 28.11.04 10:27
Ich habe mir XML so hakb an einem Tag selber beigebraucht, mit einigen Tuorials. Dier mein Quelltext.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37:
| procedure TForm1.stats; Var stats:IXMLDOMnode; stats_path:string; Begin BOINC_path:=BOINC_path1.Caption; stats_path:=BOINC_path+'client_state.xml';
if not FileExists(stats_path) then prefPanel.BringToFront; xmlDoc:=CoDomDocument40.Create;
xmlDoc.setProperty('NewParser',true); xmlDoc.load(stats_path) ;
if xmlDoc.parseError.errorCode = 0 then Begin
stats:=xmldoc.selectSingleNode('client_state/project/project_name'); Gbox1.Caption:=stats.text; End; totalcredit.Caption:=Label17.Caption; end; |
Moderiert von
UGrohne: Code- durch Delphi-Tags ersetzt.
Delete - So 28.11.04 11:40
Ja, okay. Dann sag ich jetzt einfach mal, dass du zwar das Grundwissen hast, dass du aber offenbar nicht weißt, wie man
mehrere gleichnamige Knoten ausliest. Und da war, wie erwähnt, das Stichwort:
selectNodes (anstelle von
selectSingleNode), und hier noch mal das Beispiel, falls es oben im Text etwas untergegangen ist:
[url=
http://www.delphi-forum.de/viewtopic.php?p=121751#121751]klick mich![/url]
Ich bin der Meinung, es müsste dir helfen, da es etwas ähnliches macht. Zumindest verdeutlicht es dir die Verwendung von
selectNodes zum Auslesen mehrerer Knoten.
bjacke - So 28.11.04 14:17
| MathiasSimmack hat folgendes geschrieben: |
Ja, okay. Dann sag ich jetzt einfach mal, dass du zwar das Grundwissen hast, dass du aber offenbar nicht weißt, wie man mehrere gleichnamige Knoten ausliest. Und da war, wie erwähnt, das Stichwort: selectNodes (anstelle von selectSingleNode), und hier noch mal das Beispiel, falls es oben im Text etwas untergegangen ist:
[url=http://www.delphi-forum.de/viewtopic.php?p=121751#121751]klick mich![/url]
Ich bin der Meinung, es müsste dir helfen, da es etwas ähnliches macht. Zumindest verdeutlicht es dir die Verwendung von selectNodes zum Auslesen mehrerer Knoten. |
Thx für deine Hilfe!
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!