Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML-Datei mit XDOM komplett auslesen (https://www.delphipraxis.net/15253-xml-datei-mit-xdom-komplett-auslesen.html)

ak1 25. Jan 2004 02:02


XML-Datei mit XDOM komplett auslesen
 
Hallo Leute,

ich habe eine XML-Datei bei der ich theoretisch nicht weiss wie die einzelnen Knoten dieser Datei heissen. Jetzt frage ich mich wie ich durch die ganze Datei durchlaufen kann und mir dabei die Knotennamen und deren Inhalt anzeigen lassen kann. Das ganze will ich mit XDOM und Delphi 6 machen.

Folgenden code habe ich schon:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Doc: TDOMDocument;
  List: TDomNodeList;
  Knoten: TDomNode;
  Len, i: Integer;
  S: string;
begin
  //Memo1.Clear;
  ListBox1.Items.Clear;

  Doc := XmlToDomParser1.FileToDom(extractfiledir(application.ExeName) + '\test.xml');

  List := Doc.documentElement.childNodes;

  Len := List.length;
  for i := 0 To List.length -1 do
    ListBox1.Items.Add(List.item(i).nodeName);

end;
Ich schaffe es einfach nicht alle Knoten und deren Inhalt in der Listbox anzuzeigen. Wie gesagt ich darf nicht wissen wie die Knote heissen. Habt ihr eine Idee?

Gruß AK

MathiasSimmack 25. Jan 2004 09:22

Re: XML-Datei mit XDOM komplett auslesen
 
http://www.delphipraxis.com/images/common/icon_df.gif klick

ak1 25. Jan 2004 11:46

Re: XML-Datei mit XDOM komplett auslesen
 
Danke für den link Mathias ;-)

Für alle die es interessiert, hier mal der komplette Quellcode:
(tv ist ein TreeView)


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Doc: TDOMDocument;
begin

  tv.Items.Clear;

  Doc := XmlToDomParser1.FileToDom(extractfiledir(application.ExeName) + '\test.xml');
  GetThoseNodes(Doc.documentElement,nil);

end;

procedure TForm1.GetThoseNodes(const Knoten: TDomNode; tvParent: TTreeNode);
var
  tn : TTreeNode;
  len, i: Integer;
  s: string;
begin

  if (Knoten = nil) then exit;

  if (Knoten.nodeType = ntElement_Node) then
    s:=Knoten.nodeName
  else
    s:=Knoten.nodeValue;

  if (tvparent=nil) then
    tn:= tv.Items.Add(nil,s)
  else
    tn := tv.Items.AddChild(tvParent,s);

  if Knoten.childNodes.length >0 then
    for i := 0 to Knoten.childNodes.length - 1 do

  GetThoseNodes(Knoten.childNodes.item(i),tn);

end;


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