Überprüfen Sie Ihre Daten für alle Sonderzeichen. Vielleicht entfernen Sie nachfolgende Zeilenumbrüche, Leerzeichen usw.? Es sieht so aus, als ob deine XML viele Überschriften und nachgestellte Leerzeichen enthält (oder ist es genau das, was du hier im Post geschrieben hast).
Zum Beispiel:
<dob> 25/02/1990 </dob>
Sollte höchstwahrscheinlich sein:
<dob>25/02/1990</dob>
Im Code unter dem "newline" data-Element enthält eine neue Zeile und übersetzt sie in das gleiche Verhalten wie Sie Beiträge verfassen .
DEFINE VARIABLE h AS HANDLE NO-UNDO.
CREATE SAX-WRITER h.
h:SET-OUTPUT-DESTINATION("file", "c:\temp\sax.xml").
h:FORMATTED = TRUE.
h:START-DOCUMENT().
h:START-ELEMENT("customer").
h:WRITE-DATA-ELEMENT("name","Test name").
h:WRITE-DATA-ELEMENT("addr","Address1").
h:WRITE-DATA-ELEMENT("addr2","").
h:WRITE-DATA-ELEMENT("addr3","Adress3").
h:WRITE-DATA-ELEMENT("newline","~n").
h:WRITE-DATA-ELEMENT("spaces"," ").
h:WRITE-DATA-ELEMENT("dob", "25/02/1990").
h:END-ELEMENT("customer").
h:END-DOCUMENT().
DELETE OBJECT h.
sax.xml:
<?xml version="1.0"?>
<customer>
<name>Test name</name>
<addr>Address1</addr>
<addr2></addr2>
<addr3>Adress3</addr3>
<newline>
</newline>
<spaces> </spaces>
<dob>25/02/1990</dob>
</customer>
nachlauf zu entfernen und Kursräumen können Sie die TRIM
-Funktion verwenden.
Bitte stellen Sie eine spezifische Frage. – awiebe
Bitte geben Sie den 4GL-Code ein, der zum Erstellen der XML-Datei verwendet wird. Erwähnen Sie auch die OpenEdge-Version. – Austin
Sind Sie sicher, dass die Daten, die Sie an addr2 ausgeben, kein eingebettetes (und uncodiertes) Zeilenvorschubzeichen sind? –