Also ich bin grad dran Attribute auszulesen aus einer
Xml. Das klappt soweit auch ganz gut bis zum jetzigen Moment. Ich bekomme die Meldung beim Versuch das Attribut
status auszulesen.
Bis
sLangId klappt alles wunderbar und danach kommt der Fehler. Hab durchs googlen / Dokumentation lesen leider so gut wie nichts rausbekommen und bevor ich noch mehr Zeit in Recherchen stecke die eventuell an der falschen Stelle angesetzt sind frage ich hier mal nach.
https://dl.dropboxusercontent.com/u/...5945000183.png
Delphi-Quellcode:
type
XMLDocument: TXMLDocument;
var
i, j: Integer;
sPath: String; // Pfad zur Sprachxml
sTaskType: String; // Import oder Transfer
sContext: String;
sOriginalStatus: String;
sNativeText: String;
sLangId: String;
sStatus: String;
sTranslated: String;
TransNodes: IXMLNodeList;
begin
if OpenDialog.Execute then
begin
try
sPath := OpenDialog.FileName;
edFilePath.Text := (sPath);
XMLDocument.LoadFromFile(sPath);
if Assigned(XMLDocument) then
begin
TransNodes := XMLDocument.DocumentElement.ChildNodes['targets'].ChildNodes['target'].ChildNodes['stringdata'].ChildNodes;
for i := 0 to 100 {TransNodes.Count} -1 do
begin
sContext := TransNodes[i].Attributes['name'];
sOriginalStatus := TransNodes[i].Attributes['status'];
//ShowMessage(IntToStr(TransNodes[i].ChildNodes.Count)); // 6 childs beim debug
for j := 0 to TransNodes[i].ChildNodes.Count -1 do
begin
if TransNodes[i].ChildNodes[j].NodeName = 'native' then
sNativeText := TransNodes[i].ChildNodes['native'].Text;
// Delete(sNativeText, Length(sNativeText), 1);
// Delete(sNativeText, 1, 1);
if TransNodes[i].ChildNodes[j].NodeName = 'lang' then
sLangId := TransNodes[i].ChildNodes[j].Attributes['id'];
//sStatus := TransNodes[i].ChildNodes[j].Attributes['status'];
//sTranslated := TransNodes[i].ChildNodes[j].Text;
Memo.Lines.Add(sContext + ' ' + sOriginalStatus + ' ' + sNativeText + ' ' + sLangId + ' ' + sStatus + ' ' + sTranslated);
end;
end;
end;
finally
end;
end;
end;