[GELÖST] XML über NAS

7. Dezember 2012 23:26

Hallo liebes Forum,

ich versuche aus einer .Net Anwendung an den Navision Application Server eine XML-Datei zu verschicken.

Die Datei kommt beim NAS an. Beim laden der Datei erhalte ich folgende Fehlermeldung:
Fehler bei der Überprüfung, da das Dokument nicht genau einen Stammknoten enthält.

Das ist der XML-String der beim NAS ankommt. Habe ich direkt aus dem Debuger heraus kopiert.
Code:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Root>
    <Price>10</Price>
    <Change>20</Change>
    <Volume>40</Volume>
</Root>


#######Comcom::MessageReceived(VAR InMessage : Automation "''.IDISPATCH")##########
Code:
InMsg := InMessage;
InStr := InMsg.GetStream;
InStr.READ(Line);

CREATE(xmlDoc);
xmlDoc.async := FALSE;
xmlDoc.validateOnParse := TRUE;
IF NOT xmlDoc.load(Line) THEN BEGIN
  xmlerr := xmlDoc.validate;
  Error(FORMAT(xmlerr.reason));
END;


ich exprementiere schon seit einigen tagen aber leider bisher ohne Erfolg.

Könnte mir bitte jemand einen tipp geben, wo hier das Problem ist?

Danke!
Gruß
Zuletzt geändert von KAMKAMS am 8. Dezember 2012 00:31, insgesamt 1-mal geändert.

Re: XML über NAS

8. Dezember 2012 00:06

Code:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>

Gehört das letzte "?" da wirklich rein? Würde mich zwar wundern, wenn das den Fehler auslösen würde, aber probieren kann man es ja mal...

Was mich an dem Aufruf stutzig macht:
Code:
InStr.READ(Line);
...
IF NOT xmlDoc.load(Line)

Befindet sich in Line wirklich das gesamte Dokument oder nur ein Zeile davon? Wenn es nämlich nur die erste Zeile ist, dann ist es kein Wunder, dass er meckert.

Re: XML über NAS

8. Dezember 2012 00:31

Hallo Natalie,

habe das Problem gelöst.

es muss anstatt XML.LOAD -----> XML.LOADXML aufgerufen werden, dann funktioniert alles :wink:

Vielen Dank und eine schönes Wochenende
Gruß