Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Einträge gleicher name (https://www.delphipraxis.net/63658-eintraege-gleicher-name.html)

Tigermoon 21. Feb 2006 11:25


Einträge gleicher name
 
Hallo

ich versuche folgende datei auszulesen
Delphi-Quellcode:
<MITSPIELER>
<MAENNER>
<NAME>Peter</NAME>
<NAME>Ulli</NAME>
<NAME>Hans</NAME>
</MAENNER>
<FRAUEN>
<NAME>Uschi</NAME>
</FRAUEN>
</MITSPIELER>
an die erste frau und den ersten mann komme ich ran
wie aber an die zweite person

anzahl der personen kann varieren

danke
Stephie

MarcoWarm 21. Feb 2006 11:27

Re: Einträge gleicher name
 
was hast du denn bis jetzt schon für Code geschrieben?

Tigermoon 21. Feb 2006 11:30

Re: Einträge gleicher name
 
Delphi-Quellcode:
procedure datei_laden;
var
name:String;
begin

  { datei wird ausgelessen }
  if(FileExists('Mitspieler.xml'))
  then begin
    //Anlegen eines Objektes
    XML_File := newXMLDocument;
    // Laden der Datei
    XML_File.LoadFromFile('Mitspieler.xml');

    name := XML_File.ChildNodes['MITSPIELER'].ChildNodes['MAENNER'].ChildNodes['NAME'].Text;
    Mitspieler.FMitspieler.CBNamen.Items.Add(name);
    name := XML_File.ChildNodes['MITSPIELER'].ChildNodes['FRAUEN'].ChildNodes['NAME'].Text;
    Mitspieler.FMitspieler.CBNamen.Items.Add(name);
end;
end;

MarcoWarm 21. Feb 2006 11:39

Re: Einträge gleicher name
 
da du mehrere Untereinträge mit gleichem Namen hast, bleibt dir nichts anderes übrig, als alle Children des "Männerknotens" durchzulaufen:
Delphi-Quellcode:
// hier ein wenig Sinnloscode

procedure TForm1.FormCreate(Sender: TObject);
var
  i : Integer
  s : string;
begin
  for I := 0 to XMLDocument1.ChildNodes.Count - 1 do
    s:=XMLDocument1.ChildNodes[i];
end;

Tigermoon 21. Feb 2006 11:45

Re: Einträge gleicher name
 
so???

das gibt mir aber nur den ersten eintrag zurück
Delphi-Quellcode:
    for I := 0 to XML_File.ChildNodes.Count - 1 do
    begin
    name := XML_File.ChildNodes['MITSPIELER'].ChildNodes['MAENNER'].ChildNodes[i].Text;
    Mitspieler.FMitspieler.CBNamen.Items.Add(name);
    end;

MarcoWarm 21. Feb 2006 11:59

Re: Einträge gleicher name
 
dein Schleifenkopf sollte so lauten:
Delphi-Quellcode:
for i := 0 to XMLDocument1.ChildNodes['MITSPIELER'].ChildNodes['MAENNER'].ChildNodes.Count - 1 do

Tigermoon 21. Feb 2006 12:01

Re: Einträge gleicher name
 
Danke

Funzt

Stephie


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 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