Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XMLDocument(XML v1.0) Invalid character (https://www.delphipraxis.net/161728-xmldocument-xml-v1-0-invalid-character.html)

Memnarch 18. Jul 2011 09:20

XMLDocument(XML v1.0) Invalid character
 
Guten morgen allerseits.
Wollte gerade mal einen string "verschlüsseln"(was selbst gebasteltes aus spass).

Mein problem ist aber das wenn ich pech habe der Character 127(DEL) aus der AsciiTable auftaucht. Jetzt habe ich gelesen das XML 1.0 Ascii Steuerzeichen nicht unterstützt... Klasse. Kann ich den wenigstens 127 vllt durch 13 bzw 10 ersetzen? (der string wird vom benutzer eingegeben und darf sowieso nur einzeilig sein, oder mault der selbst bei nem carriagereturn...was ja auch nen steuerzeichen ist?) Dann könnte ich den beim auslesen einfach nach 127 abändern und zurückrechnen. Oder gibts ne möglichkeit dass das XMLDocument auch steuerzeichen wie 127 schluckt?

MFG
Memnarch

himitsu 18. Jul 2011 09:40

AW: XMLDocument(XML v1.0) Invalid character
 
XML kennt Zeilenumgrüche, aber es kann sein (je nach XMLLib) und verwendeter Definition (DTD) für das bestimmte Node (falls das von der XMLLib ausgewertet wird), daß dir beim Auslesen daraus z.B. ein Leerzeichen gemacht wird. :stupid:

Tipp: Lege sowas in einen CDATA-Abschnitt <![CDATA[Inhalt]]>
oder erstell dir eine DTD, welche die Zeichenbehandlung dieses Nodes entsprechend regelt.

http://de.wikipedia.org/wiki/Dokumenttypdefinition
http://de.wikipedia.org/wiki/CDATA

Memnarch 18. Jul 2011 09:51

AW: XMLDocument(XML v1.0) Invalid character
 
ich habe rausgefunden, dass ich dem DomVendor auf 'ADOM XML v4' stellen kann.
Der kannes zwar schreiben... aber nicht mehr lesen >.<

mjustin 18. Jul 2011 09:56

AW: XMLDocument(XML v1.0) Invalid character
 
Zitat:

Zitat von Memnarch (Beitrag 1112338)
Guten morgen allerseits.
Wollte gerade mal einen string "verschlüsseln"(was selbst gebasteltes aus spass).

Mein problem ist aber das wenn ich pech habe der Character 127(DEL) aus der AsciiTable auftaucht. Jetzt habe ich gelesen das XML 1.0 Ascii Steuerzeichen nicht unterstützt...

Binärdaten und Daten mit in XML unerlaubten Zeichen werden in den meisten Fällen als Base64 kodiert.

Für CDATA Abschnitte gilt, dass sie das gleiche Encoding wie das ganze XML Dokument verwenden müssen, um korrekt übertragen werden zu können.

Memnarch 18. Jul 2011 10:27

AW: XMLDocument(XML v1.0) Invalid character
 
also irgendwas läuft noch schief.
Ich gehe auf LDocument.domdocument.createCDataSection

übergebe meinen string, die daraus resultierende CDataNode speicher ich dann per LNode.DomNode.appendchild

Und im späteren XMLDOcument ist die CdataSektion leer o.O.

Ich musste DOmVendor übrigens auf 'ADOM XML v4' stellen.

EDIT: ah ok, hab einfach Document.CreateNode mit dem parameter ntCData aufgerufen und der node eigenschaft Text dan meinen string. Scheint geklappt zu haben.


MFG
Memnarch

Memnarch 18. Jul 2011 11:19

AW: XMLDocument(XML v1.0) Invalid character
 
Rauf und runter, irgendwas knallt immer wegen steuerzeichen. Pack ich halt alles in Hex und speicher das als string, fertig :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz