Jak uniknąć podwójnych cudzysłowów w wartościach atrybutów XML?

Odpowiedzi:

223

Możesz użyć "

Sachin Shanbhag
źródło
3
Jawna i dłuższa konwencja nazewnictwa jest lepsza niż akronimy lub skrócona w przypadku nazywania zmiennych, funkcji, atrybutów itp .; Zawsze będę mieć pewność co do zwięzłości - to moja niezamówiona opinia.
Daniel Sokolowski
1
Zgadzam się z Danielem. Zwięzłość może zaoszczędzić Ci 1 sekundę pisania, ale wtedy ludzie będą musieli spędzić 10 minut, próbując dowiedzieć się, co się dzieje.
NL3294
@Daniel Sokolowski: O czym rozmawiacie? Czy brakuje jakiegoś kontekstu (np. Usunięte komentarze)?
Peter Mortensen
Musi być @PeterMortensen, zapomniałem teraz, że to było prawie 7 lat temu :)
Daniel Sokolowski
54

Ze specyfikacji XML :

Aby wartości atrybutów zawierały zarówno pojedyncze, jak i podwójne cudzysłowy, apostrof lub pojedynczy cudzysłów (') może być reprezentowany jako „”, a znak podwójnego cudzysłowu („) jako„ ”.

Wim Coenen
źródło
17

Znaku podwójnego cudzysłowu ( ") można uniknąć jako ", ale oto reszta historii ...

W tym kontekście należy zastosować znak cudzysłowu :

  • W atrybutach XML rozdzielonych podwójnymi cudzysłowami:

    <EscapeNeeded name="Pete &quot;Maverick&quot; Mitchell"/>

Znaku cudzysłowu nie trzeba używać w większości kontekstów:

  • W treści tekstowej XML:

    <NoEscapeNeeded>He said, "Don't quote me."</NoEscapeNeeded>
  • W atrybutach XML rozdzielanych pojedynczymi cudzysłowami ( '):

    <NoEscapeNeeded name='Pete "Maverick" Mitchell'/>

    Podobnie ( ') nie wymagają zmiany znaczenia, jeśli ( ") są używane jako ograniczniki wartości atrybutu:

    <NoEscapeNeeded name="Pete 'Maverick' Mitchell"/>

Zobacz też

kjhughes
źródło
8

Strona konwersji na ciąg znaków w witrynie Coder's Toolbox jest przydatna do zakodowania więcej niż niewielkiej ilości kodu HTML lub XML do włączenia jako wartość w elemencie XML.

Kenny Evitt
źródło