Hoe kan ik dubbele aanhalingstekens in XML-attribuutwaarden vermijden?

Van de volgende proeven

<tag attr="\"">
<tag attr="<![CDATA["]]>">
<tag attr='"'>

Alleen de laatste werkt voor een XML-parser die ik hier gebruik.
Is er een alternatief?


Antwoord 1, autoriteit 100%

U kunt &quot;

. gebruiken


Antwoord 2, autoriteit 21%

Van de XML-specificatie:

Toestaan ​​dat attribuutwaarden bevatten
zowel enkele als dubbele aanhalingstekens, de
apostrof of enkel aanhalingsteken
(‘) kan worden weergegeven als “&apos;”,
en het dubbele aanhalingsteken (“) as
“&quot;”.


Antwoord 3, autoriteit 10%

Een dubbel aanhalingsteken (") kanworden weggelaten als &quot;, maar hier is de rest van het verhaal…

Dubbel aanhalingsteken moetenin deze context een escapeteken krijgen:

  • In XML-attributen gescheiden door dubbele aanhalingstekens:

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

Dubbel aanhalingsteken hoeft in de meeste contexten niette worden ontsnapt:

  • In XML-tekstuele inhoud:

    <NoEscapeNeeded>He said, "Don't quote me."</NoEscapeNeeded>
    
  • In XML-attributen gescheiden door enkele aanhalingstekens ('):

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

    Evenzo vereisen (') geen escapetekens als (") worden gebruikt voor de kenmerkwaarde-scheidingstekens:

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

Zie ook


Antwoord 4, autoriteit 3%

De String conversiepagina op de Coder’s Toolbox-site is handig voor het coderen van meer dan een kleine hoeveelheid HTML- of XML-code voor opname als waarde in een XML-element.

Other episodes