![]() |
Delphi-Version: 5
Wert in XML finden?
Hallo zusammen,
bin neu hier und habe gleich diese Frage: also ich habe viele XML-Dateien dieser Art. Gesucht soll nach der Anrede "Dr.", was natürlich an unterschiedlichen Stellen sich befinden kann, oder gar fehlen kann. Ist diese Gefunden - soll sein Alter ausgelesen werden, und das Auslesen des Alters gelingt mir nicht. Könnte mir da jemand auf die Sprünge helfen?
Code:
<PDB>
<Header> <Daten> <Personen> <Anrede>Herr</Anrede> <Vorname>Otto</Vorname> <Nachname>Müller</Nachname> <Alter>45</Alter> </Personen> <Personen> <Anrede>Frau</Anrede> <Vorname>Atta</Vorname> <Nachname>Schmidt</Nachname> <Alter>56</Alter> </Personen> <Personen> <Anrede>Dr.</Anrede> <Vorname>Michael</Vorname> <Nachname>Meier</Nachname> <Alter>55</Alter> </Personen> <Personen> <Anrede>Herr</Anrede> <Vorname>Gerd</Vorname> <Nachname>Schulz</Nachname> <Alter>33</Alter> </Personen> </Daten> </Header> </PDB>
Delphi-Quellcode:
Vielen herzlichen Dank!
ReadXMLFile(Doc, 'test.XML');
NList := Doc.GetElementsByTagName('Anrede'); if Assigned(NList) then begin for i := 0 to NList.Count - 1 do begin if NList.Item[i].TextContent = 'Dr.' then begin // wie hier das Alter von "Dr. Meier" auslesen? end; end; end; |
AW: Wert in XML finden?
.. wieso iterierst Du nicht durch den Tag <Personen> und fragst dann die <Anrede> ab. Ist die Anrede Dr. dann kannst Du auch noch das Alter abfragen.
Grüsse Klaus |
AW: Wert in XML finden?
Zitat:
|
AW: Wert in XML finden?
.. Du itterierst über den Tag <Anrede>
Delphi-Quellcode:
Die NList beinhalten alle Node mit dem Tag <Personen>.
ReadXMLFile(Doc, 'test.XML');
NList := Doc.GetElementsByTagName('Personen'); if Assigned(NList) then begin for i := 0 to NList.Count - 1 do begin if NList.Item[i].FindNode('Anrede').TextContent = 'Dr.' then begin NList.Items[i].FindNode('Alter').TextContent; end; end; end; In dem Node kannst Du dann Anrede und Alter abfragen. Ich kenne leider nicht Deine xml Bibliothek - kann Dir daher nicht exakt sagen wie das geht. Gibts da nicht sowas wie getNodeByName('Anrede') o.ä? Grüße Klaus |
AW: Wert in XML finden?
Hallo Klaus,
danke Dir! Ich schaue mal nach! |
AW: Wert in XML finden?
Deine Aufgabenstellung scheint nicht klar. Du schreibst oben, dass du nach Dr. suchst und dann das Alter auslesen möchtest. Daraus deute ich, das, wenn du keinen Dr. findest, das Alter nicht interessant ist. Bei Klaus wird doch nach Dr. gesucht und erst wenn dieser gefunden wurde, dann wurde das Alter ermittelt.
Nach was willst du nun suchen? |
AW: Wert in XML finden?
Hallo zusammen,
@zeras Du hast Recht. XML ist noch ein Neuland für mich, daher stand ich auf dem Schlauch. @Klaus01 Danke Dir, so läuft das also. :thumb: Die weitere Aufgabenstellung ist, wenn sich in der XML ein Dr. befindet und er über 50 Jahre alt ist, dann werden ihm zwei Praktikanten zugewiesen und dessen Namen in die XML geschrieben. Jetzt muss ich praktisch in die bestehende XML-Datei folgendes reinschreiben:
Code:
Und da habe ich erstmal keine Ansätze. Kann ich die oben genannten Datensätze einfach in die XML-Datei hineinschreiben, oder muss ich die komplette Datei einlesen, und modifiziert neu schreiben?
<Personen>
<Anrede>Herr</Anrede> <Vorname>Emil</Vorname> <Nachname>Schmidt</Nachname> <Alter>19</Alter> </Personen> <Personen> <Anrede>Frau</Anrede> <Vorname>Ute</Vorname> <Nachname>Boden</Nachname> <Alter>20</Alter> </Personen> |
AW: Wert in XML finden?
.. ich denke kannst Du schon da hineinschreiben - nur
Wie willst Du die Bezüge zum Dr. zu den Praktikanten hineinbringen? Da fehlt meiner Meinung nach ein Tag bei den Praktikaten - der darauf hindeutet wer für ihn/sie zuständig/verantwortlich ist. Grüße Klaus |
AW: Wert in XML finden?
Zitat:
|
AW: Wert in XML finden?
.. nun da ich Deine XML Library nicht kenne..
Im Prinzip so: Du erstellst Dir einen neuen Knoten <Personen> diese fügst Du weiter Unterknoten hinzu. Den <Personen>-Knoten kannst Du dann dem Knoten <Daten> hinzufügen. Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:59 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