Avatar billede sovsekoder Nybegynder
11. oktober 2004 - 11:00 Der er 2 kommentarer og
1 løsning

newline og andet godt i XML!

Et lille problem i XML:

jeg har en streng f.eks. "onsdagsøl\n", som indeholder det specielle tegn : \n. Når jeg serialiserer bliver strengen gemt som:

"onsdagsøl

" og når jeg så deserialiserer igen hentes strengen som:

"onsdagsøl " - .NET C# har snuppet mine tegn! Hvad skal jeg gøre for at få deserialiseret min xml som den originale streng : "onsdagsøl\n" ??
Avatar billede janegil Nybegynder
11. oktober 2004 - 12:36 #1
I XML er det standard at whtespace kollapser, at fire linjeskift vises på samme måte som et mellomrom: Enten som et mellomrom, eller, hvis det nærmer seg slutten av linjen, som et linjeskift. Men den burde nok ikke fjerne tegn, bare avstå fra å vise dem på skjermen.

Designet ditt er litt på tvers av XML, i XML vil et linjeskift vanligvis være definert i markup, ikke i tekstinnhold. Fx
<nytelse>onsdagsøl</nytelse>
kombinert med CSS styling:
nytelse {display: block;}

Ellers tror jeg http://www.w3.org/TR/2004/REC-xml11-20040204/#sec-white-space at du skulle kunne bruke
<nytelse xml:space="preserve">onsdagsøl\n</nytelse>
Avatar billede sovsekoder Nybegynder
11. oktober 2004 - 12:59 #2
Problemet er at jeg gerne vil beholde linie skiftet, som er indtastet af en bruger (dvs. det er uvidst, hvor linie skiftet er, eller om det overhovedet forekommer). så strengen "onsdags\nøl" kunne lige så let forekomme.... jeg prøvet at kigge ind på whitespace-handling...
Avatar billede sovsekoder Nybegynder
11. oktober 2004 - 13:17 #3
hmmm problemet lå åbenbart et andet sted... ingen problemer med serialize / deserialize
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester