Hallo,
ich habe folgendes Problem:
Es ist mein erster Versuch Daten in einer
XML Datei zu speicher/die Datei auszulesen (wollt ich nur mal dazusagen, d.h. es könnte gut sein dass ich da total absurdes zeug gecodet hab
)
beim auslesen einer
XML Datei bekomme ich eine Zugriffsverletzung..Ich habe schon mehrere Beiträge zu ähnlichen Problemen durchgelesen, aber nichts gefunden. Vielleicht könnt ihr mir sagen wo der Fehler liegen könnte. Danke im Voraus.
Die Procedure zum auslesen der
XML Datei:
Delphi-Quellcode:
//Button "Read from Database
procedure TForm1.Bt_readfromdbClick(Sender: TObject);
//const
//NAMES: array[0..5] of string = ('title', 'bild', 'ton', 'beschreibung','passwort', 'download');
var
movies: IXMLDOMNodeList;
subNode,LinkNode,ANode: IXMLDOMNode;
i, j, k: integer;
cat,
name:
string;
hh:boolean;
begin
//XML AUSLESEN
cat:=Box_categ.Text;
hh:=CreateOrOpenXML(cat);
//funktion zum öffnen der XML datei als xmlDoc (IXMLDOMDocument2)
if hh=true
then
begin
XML_List.Items.Clear;
// leeren der XML_List (TListView)
XML_List.Items.BeginUpdate;
movies := xmlDoc.documentElement.selectNodes('
dl');
//xmlDoc ist global definiert (IXMLDOMDocument2)
for i:=0
to movies.length - 1
do begin
subNode := movies.item[i].selectSingleNode('
id');
XML_List.Items.Add;
XML_List.Items[i].Caption := subNode.Text;
with XML_List.Items[i].SubItems
do begin
for j:=1
to 5
do begin
name:=XML_List.Columns[j].Caption;
subNode := movies.item[i].selectSingleNode(
name);
if subNode <>
nil then
begin
if subNode.nodeName='
download'
then
begin
for k:=0
to subNode.childNodes.length
do begin
LinkNode:=subNode.childNodes[k];
ANode:=LinkNode.firstChild;
//HIER KOMMT DER LAUFZEITFEHLER
XML_List.Columns.Add;
if subNode <>
nil then Add(ANode.Text);
end
end
else
Add(subNode.Text)
end
else
Add('
');
end;
end;
end;
XML_List.Items.EndUpdate;
xmlDoc.save(fAppPath + cat+'
.xml');
end
else Application.Terminate;
end;
Und noch die
XML Datei
XML-Code:
<?
xml version="1.0" encoding="ISO-8859-1"?>
<?
xml-stylesheet type="text/xsl" href="dltemplate.xsl"?>
<dls>
<bigtitle>Überschrift</bigtitle>
<
dl>
<id>0</id>
<title>Titel</title>
<bild>Bild</bild>
<beschreibung>Beschreibung</beschreibung>
<passwort>passwort</passwort>
<download>
<links><a>Erster Link</a></links>
<links><a>Zweiter Link</a></links>
</download>
</
dl>
</dls>