![]() |
XML Attribut auslesen - Konnte nicht in Typ (OleStr) konvertiert werden
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. ![]()
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; |
AW: XML Attribut auslesen - Konnte nicht in Typ (OleStr) konvertiert werden
Dann hast Du bei dem Element nichts (NULL) drin.
Vorher auf .NULL oder .ISNULL oder so abfragen. |
AW: XML Attribut auslesen - Konnte nicht in Typ (OleStr) konvertiert werden
Zitat:
|
AW: XML Attribut auslesen - Konnte nicht in Typ (OleStr) konvertiert werden
Zitat:
|
AW: XML Attribut auslesen - Konnte nicht in Typ (OleStr) konvertiert werden
Zitat:
Delphi-Quellcode:
try
if TransNodes[i].ChildNodes[j].Attributes['status'] <> NULL then sStatus := TransNodes[i].ChildNodes[2].Attributes['status']; except // end; |
AW: XML Attribut auslesen - Konnte nicht in Typ (OleStr) konvertiert werden
Dann bist Du auf einem Inexistenten Listenindex.
Debugger? |
AW: XML Attribut auslesen - Konnte nicht in Typ (OleStr) konvertiert werden
Zitat:
Delphi-Quellcode:
Statt "[2]"
if TransNodes[i].ChildNodes[j].Attributes['status'] <> NULL then
sStatus := TransNodes[i].ChildNodes[j].Attributes['status']; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 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