Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Gleiche Unterknoten bei IXMLDocument auslesen (https://www.delphipraxis.net/78464-gleiche-unterknoten-bei-ixmldocument-auslesen.html)

GruppeCN 5. Okt 2006 12:36


Gleiche Unterknoten bei IXMLDocument auslesen
 
Ich hab das selbe Problem wie Luckie hier: http://www.delphipraxis.net/internal...ct.php?t=83151

Nur verwende ich die XMLDoc Unit mit einem IXMLDocument Objekt. Außerdem arbeite ich ohne XPath, sondern einfach direkt über die Unterknoten. Wenn ich aber einfach versuche den Knoten auszulesen, klappt das alles sehr schön, aber ich krieg halt nur den Text vom ersten Knoten. Die nachfolgenden mit gleichem Namen kann ich nicht erreichen.

chaosben 5. Okt 2006 12:46

Re: Gleiche Unterknoten bei IXMLDocument auslesen
 
Ich glaube, ich verstehe dich nicht ganz. Aber ich versuchs trotzdem: :)

Wenn du dein IXMLDocument hast, hast du als property das DocumentElement was wiederum sein ChildNodes hält. Damit und mit ChildCount solltest du durch die Knoten laufen können.

GruppeCN 5. Okt 2006 15:43

Re: Gleiche Unterknoten bei IXMLDocument auslesen
 
Danke, soweit bin ich schon ;)

Also, mein Dokument sieht an einer Stelle so aus:

XML-Code:
<documents>
  <document name="...">...</document>
  <document name="...">...</document>
  <document name="...">...</document>
</documents>
Ich möchte jetzt nacheinander auf alle <document> Tags zugreifen. Wenn ich aber über DocumentElement.ChildNodes['documents'].ChildNodes['document'] das versuche, komm ich nur an das erste. Wie komm ich an die anderen auch dran?

GruppeCN 5. Okt 2006 15:53

Re: Gleiche Unterknoten bei IXMLDocument auslesen
 
Ahh, super, danke! Du hattest schon recht, ich wusste nur nicht, dass man an ChildNodes auch einen Index statt den Namen des Tags übergeben kann.

weltaran 11. Nov 2006 16:27

Re: Gleiche Unterknoten bei IXMLDocument auslesen
 
hmmm, habs jetzt nicht ausprobiert aber vielleicht so


Delphi-Quellcode:
var
  node, mynode: IXMLDOMNODE;
  nodes: IXMLDOMNODELIST;
  i: integer;

begin
  .....
  // node ist jetzt dein 'documents'-Knoten
  nodes:= node.getelementsbytagname('document');
  for i:= 0 to nodes.length-1 do
  begin
    mynode:= nodes.item[i];
    mynode.machwasimmerduwillst;
  end;
end;
bis die tage


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