Czy istnieje znak ucieczki dla podwójnego cudzysłowu w XML? Chcę napisać tag taki jak:
<parameter name="Quote = " ">
ale jeśli wstawię „, to oznacza, że ciąg się skończył. Potrzebuję czegoś takiego (c ++):
printf("Quote = \" ");
Czy jest znak do napisania przed podwójnym cudzysłowem, aby go uniknąć?
"
Reszta historii ...Odpowiedzi:
Spróbuj tego:
źródło
Oto typowe znaki, które należy zmienić w XML, zaczynając od podwójnych cudzysłowów:
"
) są zmieniane"
&
) jest zmieniany do&
'
) są zmieniane na'
<
) jest zmieniane do<
>
) jest zmieniany do>
źródło
Inni odpowiedzieli, jak radzić sobie z konkretnymi ucieczkami w tym przypadku.
Szersza odpowiedź brzmi: nie próbuj robić tego samemu. Korzystaj z XML API - jest ich mnóstwo dla prawie każdej istniejącej nowoczesnej platformy programistycznej.
Interfejsy API XML obsługują takie rzeczy automatycznie, co znacznie utrudnia popełnienie błędu. O ile sam nie piszesz API XML, rzadko powinieneś martwić się o takie szczegóły.
źródło
Nowa, ulepszona odpowiedź na stare, często zadawane pytanie ...
Kiedy unikać podwójnego cudzysłowu w XML
Podwójny cudzysłów (
"
) może pojawić się bez zmiany znaczenia :W treści tekstowej XML:
W atrybutach XML rozdzielonych pojedynczymi cudzysłowami (
'
):Uwaga: przejście na apostrofy (
'
) również nie wymaga zmiany znaczenia:Podwójny cudzysłów (
"
) musi zostać zmieniony :W atrybutach XML rozdzielonych podwójnymi cudzysłowami:
Konkluzja
Podwójny cudzysłów (
"
) musi zostać zmieniony, tak jak"
w XML, tylko w bardzo ograniczonych kontekstach.źródło
Nie, nie ma znaku ucieczki jako takiego, zamiast tego możesz użyć znaku
"
lub nawet<![CDATA["]]>
go reprezentować"
.źródło
Jeśli chcesz coś szybko wypróbować, oto szybkie i brudne rozwiązanie. Użyj apostrofów dla wartości atrybutu :
źródło
W C ++ możesz użyć EscapeXML ATL API. To jest poprawny sposób obsługi znaków specjalnych ...
źródło
Możesz spróbować użyć odwrotnego ukośnika, po którym następuje „u”, a następnie wartość Unicode dla znaku, na przykład wartość Unicode podwójnego cudzysłowu to
"-> U + 0022
Dlatego jeśli ustawisz go jako część tekstu w XML w Androidzie, wyglądałoby to mniej więcej tak,
Spowodowałoby to mniej więcej tekst w TextView
„Wyświetlam podwójne cudzysłowy”
Możesz znaleźć Unicode większości symboli i znaków tutaj www.unicode-table.com/en
źródło