![]() |
XML Dokument nach nach seinen Knoten durchsuchen?
Wie durchsuche ich ein XML Dokument am einfachsten nach all seinen Knoten und Attributen und speichere mir diese so ab, das ich danach auf jeden einzelnen Knoten zugreifen kann? und alles was innerhalb dieses Knotens steht (incl. unterknoten) in ein anders XML Dokument kopieren kann.
Für alle für die es aussieht wie ..."der will ja ne komplette Lösung"..klar wär nicht schlecht, aber da würd i ja nix mehr bei lernen... aber einige Anregungen wie ich vorgehen muss währen nicht schlecht....bin nämlich ein absoluter neuling im umgang mit delphi und xml.... |
Re: XML Dokument nach nach seinen Knoten durchsuchen?
Zitat:
Das verstehe ich nicht. Wiso willst du einen Umweg gehen, wenn du doch bereits direkt auf alle Knoten zugreifen kannst? Oder meinst du wie du auf einen bestimmten Knoten zugreifen kannst? Gruss lkz633 |
Re: XML Dokument nach nach seinen Knoten durchsuchen?
Also ich muss von einem XML Dokument betimmte Knoten auflisten, von welchen man dann einen auswählen kann und alles ab dieser Ebene soll kopiert, in eine andere XML Datei kopiert und voher transformiert werden. Es geht darum das ich mehrere XML-Dateien habe in einer stehen gewisse Daten bis zu einem bestimmten Punkt. Dann habe ich weitere Dateien zu welchen die Fortsetzung der Daten steht. Ich muss nun aus der ersten Datei einen bestimmten Knoten auswählen daraufhin muss die zugehörige andere XML-Datei in die entsprechende Form gebracht werden und es muss eine neue XML-Datei enstehen, in welcher nun die gesamten Daten des transformierten und ein Teil der Daten des Dokuments aus dem ich ausgewählt habe stehen.
Ich weiß ist ziemlich verwirrend. Schema: Auswahldatei /----1----\ /-----1-----\ /------1------\ /-------1-------\ 1.-------2.-------3. Datei Auswahldatei: <aaa> <bbb> <1> <2> </bbb> <bbb> <3> <4> </4> </aaa> 1.,2.,3. Datei: <1> <yyy> <xxx> <xxx> </yyy> <yyy> <xxx> <xxx> </yyy> <1> <2> <yyy> <xxx> <xxx> </yyy> <yyy> <xxx> <xxx> </yyy> <2> . . . In Ausgangsdatei <2> auswählen, die weiteren Daten zu dem jeweiligen Eintrag liegen wird transformiert und eine neue xml erstellt, welche nun die daten aus der Ausgangsdatei von <bbb><2></bbb> enthält und die entsprechenden daten aus der zu 2 gehörigen datei. ich hoff das wird langsam klarer, was ich will ;) |
Re: XML Dokument nach nach seinen Knoten durchsuchen?
Moment, ich kann ja auf jeder eben mir die anzahl der vorhanden knoten ausgeben lassen und dann schauen ob dieser knoten noch unterknoten hat.
aber das müsst ich ja irgenwie rekursiv machen oder... , dazu bräucht ich dann aber sicher mal n bsp-code weil mit rekursion steh ich irgendwie auf kriegsfuss ;) |
Re: XML Dokument nach nach seinen Knoten durchsuchen?
Ok, jetzt ist ein wenig klarer geworden.
Hier mal ein Beispielfunction, die alle Knoten unterhalb des Roots in eine Combobox liest:
Code:
Schau dir mal am besten die Hilfe fuer xml an, vor allem documentelements, childnodes,indexof,count,attributes
function getnodes;
var xml: ixmldocument; i: integer; begin xml:= newxmldocument; with xml do begin LoadFromFile(extractfilepath(paramstr(0))+'xyz.xml'); for i:= 0 to DocumentElement.ChildNodes.Count-1 do comobox.items.add(DocumentElement.ChildNodes[i].text) end; end; Gruss lkz633 |
Re: XML Dokument nach nach seinen Knoten durchsuchen?
nochmals zurück...
hab grad die die xml dateien in die hand bekommen ich muss nach bestimmten attributen suchen, davon eines auswählen und eine neue Datei erzeugen. die knoten sehen wie folgt aus
Code:
ich muss im attribut I nach der jeweiligen nummer suchen (nur nach der nummer)
<pKno I="kno.****-BauZ.44" IR="tlg.****-BauZ.29" Typ="TLG" Bez="Leitungshalter für Leitung Rd 8 bis 10/Fl 20 bis 30" Sort_Knoten="94">
<pLKno/> <pLZuInfo/> </pKno> |
Re: XML Dokument nach nach seinen Knoten durchsuchen?
nochmals zurück...
hab grad die die xml dateien in die hand bekommen ich muss nach bestimmten attributen suchen, davon eines auswählen und eine neue Datei erzeugen. die knoten sehen wie folgt aus
Code:
ich muss im attribut I nach der jeweiligen nummer suchen (nur nach der nummer)
<pKno I="kno.****-BauZ.44" IR="tlg.****-BauZ.29" Typ="TLG" Bez="Leitungshalter für Leitung Rd 8 bis 10/Fl 20 bis 30" Sort_Knoten="94">
<pLKno/> <pLZuInfo/> </pKno> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 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 by Thomas Breitkreuz