Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 49331

TwinCat3 Verständnisproblem TC3_JsonXML

$
0
0
Ich stehe grade komplett auf der Leitung! Ich versuche, eine XML-Datei zu laden und die Daten in eine Struktur zu übertragen. Das Ganze funktioniert bereits mit FB_XmlSrvRead und der Versuch, über die JsonXML zu gehen, dient einem Geschwindigkeitsvergleich da in der Zukunft viele recht große Dateien geladen werden sollen.
Leider fehlt mir das Verständnis für den XMLDomParser wo ich mit der Methode LoadDocumentFromFile die XML lade, was offenbar passiert da sowohl die Startvariable als auch der Rückgabewert zurückgesetzt wird. Allerdings bekomme ich als XML-String nur '<?xml version="1.0"?>', egal was in der Datei steht.
Was übersehe ich?

Code:

Var

    fbXml : FB_XmlDomParser;
    xmlDoc : SXmlNode;
    sMessageToParse : T_maxstring;   
    xmlRootNode : SXmlNode;
    loaded : BOOL;   
    step : INT :=0;
    xmlLength : UDINT :=0;
    FTloaded : Tc2_Standard.F_TRIG;
End_Var

Code:

sFilePath := 'C:\Temp\test.xml' ;
FTloaded(CLK :=loaded);
CASE step OF
    0:  IF bstart2 THEN
            sMessageToParse := '';
            xmlLength := 0;
            fbxml.NewDocument();   
            step := step +1;
           
        END_IF
   
    1:
        loaded := fbxml.LoadDocumentFromFile(sFilePath,bstart2);
        IF FTloaded.Q THEN
            xmlRootNode := fbXml.GetRootNode();
            step := step +1;
           
        END_IF
    2:
        xmlLength := fbxml.CopyDocument(sMessageToParse,SIZEOF(GVL.Pos_ar));
        IF xmlLength > 0 THEN
            step := 0;
        END_IF
       
END_CASE

Anmerkung: GVL.Pos_ar ist das eigentliche Zielarry dessen Größe ich hier nur benutze um genügend Speicher zur Verfügung zu stellen.
xmlLength hat am Ende immer den Wert 22, sMessageToParse beinhaltet immer '<?xml version="1.0"?>'.

Wie komme ich an die XML-Daten?

Vielen Dank im Voraus

Viewing all articles
Browse latest Browse all 49331


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>