AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi XML Attribut auslesen - Konnte nicht in Typ (OleStr) konvertiert werden
Thema durchsuchen
Ansicht
Themen-Optionen

XML Attribut auslesen - Konnte nicht in Typ (OleStr) konvertiert werden

Ein Thema von Back2Code · begonnen am 2. Okt 2013 · letzter Beitrag vom 2. Okt 2013
 
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#1

XML Attribut auslesen - Konnte nicht in Typ (OleStr) konvertiert werden

  Alt 2. Okt 2013, 14:04
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 = 'nativethen
                  sNativeText := TransNodes[i].ChildNodes['native'].Text;
                 // Delete(sNativeText, Length(sNativeText), 1);
                 // Delete(sNativeText, 1, 1);

                if TransNodes[i].ChildNodes[j].NodeName = 'langthen
                  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;
00111100001100110010000001000100011001010110110001 1100000110100001101001
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 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