Mam trochę tekstu XML, który chcę renderować na stronie HTML. Ten tekst zawiera ampersanda, którego chcę, aby uczynić w swojej reprezentacji podmiotu: &
.
Jak mogę uciec od tego znaku handlowego i źródłowego XML? Próbowałem &
, ale jest to dekodowane jako rzeczywisty znak ampersand ( &
), który jest nieprawidłowy w HTML .
Chcę więc uciec z niego w taki sposób, aby był renderowany jak &
na stronie internetowej, która korzysta z danych wyjściowych XML.
Odpowiedzi:
Gdy twój XML zawiera
&
, spowoduje to tekst&
.Gdy użyjesz tego w HTML, będzie to renderowane jako
&
.źródło
Zgodnie z § 2.4 specyfikacji XML 1.0 powinieneś być w stanie korzystać
&
.Czy na pewno nie jest to inny problem? XML jednoznacznie definiuje to jako sposób na uniknięcie ampersand.
źródło
&
Postać sama jest ucieczka w postaci XML więc rozwiązaniem jest go i po przecinku Unicode odpowiednik dla złączyć&
zapewniając w ten sposób, że nie ma błędów parsowania XML. Oznacza to, że należy wymienić postać&
z&
.źródło
&
Użyj
CDATA
tagów:źródło
&
powinien działać dobrze, Wikipedia ma listę predefiniowanych encji w formacie XML .źródło
W moim przypadku musiałem to zmienić na
%26
.Musiałem uciec
&
w adresie URL. Więc mi&
nie wyszło. Funkcja urlencode zmienia się&
na%26
. W ten sposób ani XML, ani mechanizm URL przeglądarki nie narzekały na adres URL.źródło
Próbowałem i wzmacniacz, ale to nie działało. Na podstawie odpowiedzi Wima Ten Brink'a wypróbowałem & amp; amp; zadziałało.
Jeden z moich kolegów programistów zaproponował mi użycie & # x26; i działało niezależnie od tego, ile razy może być renderowane.
źródło
&
to sposób na reprezentowanie znaku handlowego i w większości sekcji dokumentu XML.Jeśli chcesz, aby XML był wyświetlany w HTML, musisz najpierw utworzyć poprawnie zakodowany XML (co wymaga zmiany
&
na&
), a następnie użyć go do stworzenia poprawnie zakodowanego HTML (co wymaga ponownej zmiany&
na&
). To powoduje:Aby uzyskać dokładniejsze objaśnienie kodowania XML, zobacz:
Jakie znaki muszę uciec w dokumentach XML?
źródło
<xsl:text disable-output-escaping="yes">& </xsl:text>
da rade.źródło
Co powiesz na użycie Unicode
\u0026
? Działa dla mnie w moich plikach XML Androida. Jeśli pojawią się problemy, daj mi znać.źródło
\u
Ucieczki nie mają ogólnego znaczenia w języku XML. -1.Zastanów się, czy Twój XML wygląda jak poniżej.
Nie można użyć
<>
bezpośrednio, ponieważ powoduje to błąd. W takim przypadku możesz użyć<>
zamiast tego.Kliknij tutaj, aby zobaczyć wszystkie kody.
źródło