Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Problem mit mehreren Einträgen gleichen Namens (https://www.delphipraxis.net/123307-problem-mit-mehreren-eintraegen-gleichen-namens.html)

miLeRiAm 30. Okt 2008 14:22


Problem mit mehreren Einträgen gleichen Namens
 
Hi,

folgendes XML:

XML-Code:
<?xml version="1.0"?>
<phonebooks>
   <book>
      <id>1</id>
      <name>Testgruppe</name>
   </book>
   <book>
      <id>2</id>
      <name>Testbuch 123</name>
   </book>
</phonebooks>
Folgender Delphi-Code:

Delphi-Quellcode:
  XMLDoc.LoadFromXML(res);

  StartItemNode := XMLDoc.DocumentElement.ChildNodes.FindNode('book');

  ANode := StartItemNode.ChildNodes.First;

  frmMain.lstBooks.Clear;

  showmessage(XMLDoc.XML.Text);

  while Assigned(ANode) do
  begin

    with frmMain.lstBooks.Items.Add do
     begin
      imageindex := 2;
      caption := ANode.ChildNodes['name'].Text;
      subitems.Add('-');
      subitems.Add(ANode.ChildNodes['id'].Text);
     end;

    ANode := ANode.NextSibling;
  end;

Wirft keine Fehler, aber die Einträge der Listview bleiben "leer", werden also angelegt, aber eben ohne Text.

Ideen?

Danke

Luckie 30. Okt 2008 14:40

Re: Problem mit mehreren Einträgen gleichen Namens
 
Wo ist da der Bezug vom Threadtitel zu deinem geschilderten Problem?

miLeRiAm 30. Okt 2008 14:41

Re: Problem mit mehreren Einträgen gleichen Namens
 
Zitat:

Zitat von Luckie
Wo ist da der Bezug vom Threadtitel zu deinem geschilderten Problem?

Es gibt mehrere "book"-Einträge?

Vielen Dank für deine Hilfe (...)

eikeble 30. Okt 2008 14:43

Re: Problem mit mehreren Einträgen gleichen Namens
 
Wenn ich mich recht entsinne, musst du noch auf das Childelement von "id" respektive "name" zugreifen und dessen Text-Eigenschaft auslesen.
Oder verwechsle ich das mit dem bei Lazarus mitgelieferten XML Parser?

Gruß

Eike

miLeRiAm 30. Okt 2008 14:48

Re: Problem mit mehreren Einträgen gleichen Namens
 
Nein, das schon der selbe. Allerdings tue ich dies doch in der while-Schleife?

Edit: So gings...

Delphi-Quellcode:
  ANode := XMLDoc.DocumentElement.ChildNodes.First;

  while Assigned(ANode) do
  begin

    with frmMain.lstBooks.Items.Add do
     begin
      imageindex := 2;
      caption := ANode.ChildNodes['name'].Text;
      subitems.Add(ANode.ChildNodes['id'].Text);
      subitems.Add('-');
     end;

    ANode := ANode.NextSibling;
  end;


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