ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
1311
1311
EMPFEHLEN
-
Hallo zuasmmen.
Ich hoffe ich bin mit dem Thema im richtigen Forum. Könnte genauso gut in Handy, PDA (wegen der Kommunikation mit solch einem Gerät) oder in .NET Kommunikation. Bitte verschieben falls ich hier falsch bin!
Also:
Ich serialisiere mit dem XML-Serialzer ein Objekt. Dieses enthalt ausschließlich Strings als Attribute. Nun enthalten mehrere dieser Strings Zeilenumbrüche. Leider werden diese auf der anderen Seite (Windows CE) nicht richtig übersetzt.
Das wirkt sich folgendermaßen aus:
Ich sende:
Das ganze wird auch wunderbar in ein Byte-Array gewandelt und über das Netz geschickt. Auf der anderen Seite angekommen und Deserialisiert kann ich allerdings kein CrLf mehr finden, sondern nurnoch einen Lf.Code vbnet:1
"a" & ControlChars.CrLf & "a"
Nun dachte ich, statt die Zeilenumbrüche direkt zu senden, nutze ich diese htmlentities (weiß nich ob die hier auch so heißen):
Der lustige Effekt: Das & der einzelnen Anweisungen wird in & gewandelt. Dadurch wird natürlich wieder nur müll Übertragen und kein Zeilenumbruch.Code vbnet:1 2 3
Private Function replaceForXML(ByVal str As String) As String Return str.Replace(ControlChars.CrLf, "
") End Function
Wie bekomme ich es hin, dass der CrLf auch einer bleibt?
Werde das noch genauer untersuchen an welcher Stelle es hapert...
Aber eventuell hat mit den bisherigen Infos ja schon jemand eine Idee?
Gruß
-
08.04.09 22:30 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Laut XML Standard wird das Zeilenende in XML Dokumenten durch das Zeichen LF markiert. Da hat sich diesmal sogar Microsoft dran gehalten.
D.h. wenn ein XML Parser ein Dokument liest, dann werden automatisch alle anderen Zeilenendemarkierungen (CR bzw. CRLF) im Zuge der Normalisierung in LF konvertiert.
Wie man CharEntities in XML Dokumente einfügt, hatten wir ja schonmal => http://www.tutorials.de/forum/net-da...-entities.html
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Achso - na das erklärt einiges. Danke

Das mit den CharEntities ist so eine Sache. Ich habe ja ein Objekt, welches ich mit dem XMLSerializer in eine XML-Struktur wandel. Daher müsste ich dem das ja irgendwie mitgeben das er nen Zeilenumbruch automatisch umwandelt?
Oder ich machs noch anders und bastel mir die CrLf aus den Lf in den einzelnen Strings wieder zusammen. Das wär sicher die schnellste methode?
Gibts auch eine Möglich über Annotations (ka wie die bei Microsoft heißen) den einzelnen Properties informationen zu der XML-Serialisierung bezüglich Zeilenumbrüchen mitzugeben?
Gruß
-
09.04.09 10:42 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Das wäre sicherlich das einfachste.
Nein, für Zeilenumbrüche gibt es keine Option bei den .NET XML Serialisierungs-Attributen. Aber du könntest versuchen die Daten in eine CDATA Sektion zu speichern. Siehe z.B. http://geekswithblogs.net/cmartin/ar.../30/61705.aspx
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Danke für den Tipp mit dem CDATA.
Hatte ich auch schon überlegt - aber irgendwie hab ich da nix zu gefunden.
Werd ich Dienstag morgen direkt probieren - heut komm ich da nicht mehr zu
Gruß und schonmal frohe Ostern
-
Damti das Thema hier auch abgehakt wird.
Einfach im String die Lf durch CrLf ersetzen.
So funktionierts bei mir auf jeden fall
Ohne CDATA - was aber sicher auch ne Lösung wär...
Code vbnet:1
textbox.text = stringAusXML.Replace(ControlChars.Lf, ControlChars.CrLf)
Ähnliche Themen
-
Problem zeilenumbruch wird nicht gemacht bei abfrage
Von humsdigga im Forum PHPAntworten: 1Letzter Beitrag: 26.01.08, 14:59 -
LangResource Strings - Zeilenumbruch wird ignoriert.
Von Christian Kusmanow im Forum .NET Application und Service DesignAntworten: 2Letzter Beitrag: 08.11.05, 11:37 -
Abfrage wird falsch umgesetzt
Von PHP-Fan im Forum PHPAntworten: 4Letzter Beitrag: 18.10.05, 17:23 -
Datei wird ohne Zeilenumbruch eingelesen
Von cesupa im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 12.09.05, 15:05 -
Kein Zeilenumbruch - Tabelle wird größer!
Von neopayne im Forum PHPAntworten: 2Letzter Beitrag: 19.12.04, 12:02





Zitieren

Login





