2010-02-15 12 views
39

Szukałem reprezentacji powrotu karetki w węźle XML.
Próbowałem zachować białą przestrzeń, sześciokątny element bez powodzenia - i \ n. przeglądanie za pomocą przeglądarki.Kodowanie powrotu karetki XML

Przykład

<Quote> 
Alas, poor Yorick! 
I knew him 
</Quote> 

Dzięki.

Odpowiedz

1

Przeglądarka nie pokaże ci białej przestrzeni niezawodnie. Polecam Linuksowe polecenie "od", aby zobaczyć, co naprawdę tam jest. Spełniające parsery XML będą respektować wszystkie wymienione metody.

13

xml:space="preserve" ma działać dla wszystkich zgodnych analizatorów składni XML.

jednak pamiętać, że w HTML przerwa linia jest tylko spacje i NIE przerwa linii (ten jest reprezentowany z <br /> (X) tag HTML, może to jest problem, który masz do czynienia.

Można również dodać &#10; i/lub &#13; wstawić znaki CR/LF.

+1

pracował dla mnie świetnie. Po prostu renderowane jako flash HTML. – thomallen

+1

Dla zapisu sekwencja na PC przynajmniej jest zwykle CR , a następnie LF , ale w tych dniach wystarczająca jest pojedyncza LF. –

+1

Należy również zauważyć, że nawet przy 'xml: space =" save "', parser XML jest nadal [wymagany do zastąpienia '13 10' (i innych sekwencji)' '10' przed analizą] (https: //www.w3 .org/TR/xml11/# sec-line-ends). Możesz wprowadzić CR, który ma przetrwać parsowanie, [używając referencji encji, takiej jak '& # xD'] (https://www.w3.org/TR/xml11/#sec-common-syn). – binki

65

aby wstawić CR do XML, trzeba użyć jej podmiot znaków &#13;.

To dlatego zgodne parser XML musi, przed analizą, tłumaczyć CRLF i każdy CR nie towarzyszy LF grzechowi gle LF. To zachowanie jest zdefiniowane w sekcji 01.specyfikacji XML 1.0.

+17

Niewielki punkt - CR to , a nie , który jest LF - więcej informacji można znaleźć w tej tabeli ascii ... http://www.asciitable.com/ ... –

+4

Tak, jest LF, jest CR. Świat Windows zwykle ma sekwencje CRLF (czyli ), Linux ma właśnie LF ( ). – Luke

+0

Nie udało mi się uzyskać tej wartości dziesiętnej, ale było w porządku w hex &#A; – MikeF

Powiązane problemy