Hi,
meine
XML-Datei sieht folgendermaßen aus:
Code:
<?
xml version="1.0"?>
<language>
<translator>
<name>Christopher Harms</name>
<website>http://www.csd-software.net</website>
<date>2003-09-18</date>
</translator>
<form name="MainForm" />
<form name="EditingForm" />
<form name="AddingForm" />
<control name="mmFile" form="MainForm">
<caption>Datei</caption>
</control>
<control name="mmGrouping" form="MainForm">
<caption>In Gruppen einteilen (XP only)</caption>
</control>
</language>
Das Problem ist nun, das bei folgendem Source die Nodes nicht ausgewählt werden, sondern bei der gekennzeichneten Zeile eine
Access Violation kommt:
Delphi-Quellcode:
procedure TMainForm.UpdateLanguage;
var
aLngDoc: IXMLDOMDocument2;
aForms: IXMLDOMNodeList;
slForms: TStringList;
sXSL: string;
i: integer;
begin
if not fileExists(fLangPath + fLanguage + '.lng') then begin
ShowMessage('Die Sprachdatei konnte nicht gefunden.' + #13#10
+ 'Es wird die Sprachvorgabe verwendet.');
end;
aLngDoc := CoDOMDocument40.Create;
slForms := TStringList.Create;
try
aLngDoc.load(fLangPath + fLanguage + '.lng');
sXSL := 'form'; {<-- gekennzeichnete Zeile ;-)}
aForms := aLngDoc.documentElement.selectNodes(sXSL);
for i:=0 to aForms.length - 1 do begin
slForms.Add(aForms.item[i].attributes.getNamedItem('name').text);
ShowMessage(aForms.item[i].attributes.getNamedItem('name').text);
end;
finally
slForms.Free;
end;
end;
Was habe ich falshc gemacht?
Chris