![]() |
XML Aenliche Datei auslesen und in TreeView laden
Hallo Leute,
Ich moechte eine XML Datei auslesen und ausgeben in einem TreeView oder ListView, die XML ist folgendermasen aufgebaut: Zitat:
Delphi 7 sieht das Wort 'file' als ein code, wie verhindere Ich das?
Delphi-Quellcode:
Schonmal Recht Herzlichen Dank.
var
xmlDomdoc : DomDocument60; file, anwendung : IXMLDomNodelist; Node, subNode : IXMLDomNode; tv : TTreeNode; i, j : integer; begin xmlDomDoc := CoDomDocument60.Create; xmlDomDoc.setProperty('NewParser', true); xmlDomDoc.load('i:\Test\alone in the dark.xml'); TreeView.Items.BeginUpdate; TreeView.Items.Clear; file:= xmlDomDoc.documentElement.selectNodes('file'); <--------- hier gehts schon schief. groups:= xmlDomDoc.documentElement.selectNodes('file/groups'); for i:= 0 to file.length - 1 do begin Node := file.item[i].selectSingleNode(group); tv := TreeView.Items.Add(nil, Node.text); if(Node.childNodes.length > 0) then for j := 0 to Node.childNodes.length - 1 do begin subNode := file.item[i].selectSingleNode(segments/segment); TreeView.Items.AddChild(tv, subNode.text); end; end; TreeView.Items.EndUpdate; end; Gruss Lucius. |
Re: XML Aenliche Datei auslesen und in TreeView laden
Zitat:
Ausserdem solltest du Folgendes ändern:
Delphi-Quellcode:
if not xmlDomDoc.load('i:\Test\alone in the dark.xml') then
begin raise Exception.Create(xmlDomDoc.parseError.reason); end; |
Re: XML Aenliche Datei auslesen und in TreeView laden
Hi shmia,
danke fuer den Ansatz. Habe die Variable umbenannt nach FileNodes und Exception eingebaut. Jetzt bekomme Ich die Exception: 'DTD nicht erlaubt' bei der Zeile:
Delphi-Quellcode:
Ich denk mal das hat was mit Vista`s Zugriffsrechte zu tun.
raise Exception.Create(xmlDomDoc.parseError.reason);
Gruss Lucius |
Re: XML Aenliche Datei auslesen und in TreeView laden
Zitat:
Delphi-Quellcode:
auskommentieren.
xmlDomDoc.setProperty('NewParser', true);
Wenn das nix hilft, dann
Delphi-Quellcode:
xmlDomDoc.validateOnParse := False;
|
Re: XML Aenliche Datei auslesen und in TreeView laden
Ich denke mal es liegt am Aufbau der XML.
Etwas stimmt in den Code nicht. Neuer code:
Delphi-Quellcode:
Gruss Lucius.
var
xmlDomdoc : DomDocument60; filenodes, groups : IXMLDomNodelist; Node, subNode : IXMLDomNode; tv : TTreeNode; i, j : integer; begin xmlDomDoc := CoDomDocument60.Create; xmlDomDoc.validateOnParse := false; if not xmlDomDoc.load('i:\Test\alone in the dark.xml') then begin raise Exception.Create(xmlDomDoc.parseError.reason); end; TreeView.Items.BeginUpdate; TreeView.Items.Clear; filenodes := xmlDomDoc.documentElement.selectNodes('file'); groups := xmlDomDoc.documentElement.selectNodes('file/groups'); for i:= 0 to filenodes.length - 1 do begin Node := filenodes.item[i].selectSingleNode('groups'); tv := TreeView.Items.Add(nil, Node.text); if(Node.childNodes.length > 0) then for j := 0 to Node.childNodes.length - 1 do begin subNode := filenodes.item[i].selectSingleNode('groups/segments'); TreeView.Items.AddChild(tv, subNode.text); end; end; TreeView.Items.EndUpdate; end; |
Re: XML Aenliche Datei auslesen und in TreeView laden
Zeig doch mal deine XML-Datei... Oder ein Muster? Damit klar ist, warum der Parser meckert...
Und was stimmt mit dem Code nicht... Zitat:
|
Re: XML Aenliche Datei auslesen und in TreeView laden
Hi XZise,
hier ein Ausschnitt einer NZB: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 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