AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wert in XML finden?

Ein Thema von LPascal · begonnen am 23. Okt 2020 · letzter Beitrag vom 13. Nov 2020
Antwort Antwort
LPascal

Registriert seit: 23. Okt 2020
33 Beiträge
 
#1

Wert in XML finden?

  Alt 23. Okt 2020, 19:27
Delphi-Version: 5
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:
    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;
Vielen herzlichen Dank!

Geändert von LPascal (23. Okt 2020 um 19:31 Uhr)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.757 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Wert in XML finden?

  Alt 24. Okt 2020, 08:52
.. 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
Klaus
  Mit Zitat antworten Zitat
LPascal

Registriert seit: 23. Okt 2020
33 Beiträge
 
#3

AW: Wert in XML finden?

  Alt 24. Okt 2020, 11:15
.. 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
Ja, genau! Die Frage ist nur wie frage ich das Alter ab?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.757 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Wert in XML finden?

  Alt 24. Okt 2020, 12:14
.. Du itterierst über den Tag <Anrede>

Delphi-Quellcode:
   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;
Die NList beinhalten alle Node mit dem Tag <Personen>.
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
Klaus

Geändert von Klaus01 (24. Okt 2020 um 12:52 Uhr)
  Mit Zitat antworten Zitat
LPascal

Registriert seit: 23. Okt 2020
33 Beiträge
 
#5

AW: Wert in XML finden?

  Alt 24. Okt 2020, 12:45
Hallo Klaus,

danke Dir! Ich schaue mal nach!

Geändert von LPascal (24. Okt 2020 um 12:48 Uhr)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#6

AW: Wert in XML finden?

  Alt 24. Okt 2020, 12:50
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?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz