Hoe ontsnap ik aan en-tekens in XML zodat ze als entiteiten in HTML worden weergegeven?

Ik heb XML-tekst die ik op een HTML-pagina wil weergeven. Deze tekst bevat een ampersand, die ik wil weergeven in de entiteitsweergave: &.

Hoe ontsnap ik aan dit ampersand in de bron-XML? Ik heb &geprobeerd, maar dit wordt gedecodeerd als het eigenlijke ampersand-teken (&), dat is ongeldig in HTML.

Dus ik wil er zo aan ontsnappen dat het wordt weergegeven als &op de webpagina die de XML-uitvoer gebruikt.


Antwoord 1, autoriteit 100%

Als uw XML &bevat, resulteert dit in de tekst &.

Als je dat in HTML gebruikt, wordt dat weergegeven als &.


Antwoord 2, autoriteit 46%

Volgens §2.4 van de XML 1.0-specificatie, zou u &moeten kunnen gebruiken.

Ik heb & maar dit is niet toegestaan.

Weet je zeker dat het geen ander probleem is? XML definieert dit expliciet als de manier om ampersands te ontwijken.


Antwoord 3, autoriteit 32%

Het &-teken is zelf een escape-teken in XML, dus de oplossing is om het samen te voegen en een Unicode-decimaal equivalent voor &om ervoor te zorgen dat er geen XML is parseer fouten. Dat wil zeggen, vervang het teken &door &.


Antwoord 4, autoriteit 17%

Gebruik CDATA-tags:

<![CDATA[
   This is some text with ampersands & other funny characters. >>
 ]]>

Antwoord 5, autoriteit 11%

&amp;amp;zou prima moeten werken, Wikipedia heeft een List van vooraf gedefinieerde entiteiten in XML.


Antwoord 6, autoriteit 3%

In mijn geval moest ik het veranderen in %26.

Ik moest &amp;amp;escapen in een URL. Dus &amp;amp;werkte niet voor mij.
De functie urlencodeverandert &amp;amp;in %26. Op deze manier klaagden noch XML, noch het browser-URL-mechanisme over de URL.


Antwoord 7

Ik heb &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp geprobeerd, maar het werkte niet. Op basis van het antwoord van Wim ten Brink heb ik het geprobeerd en het werkte.

Een van mijn collega-ontwikkelaars stelde me voor om &#x26; en dat werkte, ongeacht hoe vaak het werd weergegeven.


Antwoord 8

&amp;amp;is de manier om een ampersand weer te geven in de meeste secties van een XML-document.

Als u XML wilt weergeven in HTML, moet u eerst correct gecodeerde XML maken (waarbij u &amp;amp;moet wijzigen in &amp;amp;) en gebruik dat vervolgensom correct gecodeerde HTML te maken (waarbij opnieuw &amp;amp;moet worden gewijzigd in &amp;amp;). Dat resulteert in:

&amp;amp;

Voor een uitgebreidere uitleg van XML-codering, zie:

Welke tekens heb ik nodig om te escapen in XML documenten?


Antwoord 9

<xsl:text disable-output-escaping="yes">&amp;&nbsp;</xsl:text>zal het lukken.


Antwoord 10

Hoe zit het met het gebruik van de unicode \u0026? Werkt voor mij in mijn Android XML-bestanden. Als er zich problemen voordoen, laat iemand het me weten.


Antwoord 11

Overweeg of uw XML er als volgt uitziet.

<Employees Id="1" Name="ABC">
  <Query>
    SELECT * FROM EMP WHERE ID=1 AND RES<>'GCF'
  <Query>
</Employees>

Je kunt de <>niet rechtstreeks gebruiken omdat er een fout optreedt. In dat geval kun je &#60;&#62;gebruiken ter vervanging daarvan.

<Employees Id="1" Name="ABC">
  <Query>
    SELECT * FROM EMP WHERE ID=1 AND RES &#60;&#62; 'GCF'
  <Query>
</Employees>

Klik hierom alles te zien de codes.

Other episodes