85 votes

Est-il possible d'insérer du contenu HTML dans un document XML?

J'ai besoin d'insérer du contenu HTML dans un document XML. Est-ce possible ou le contenu HTML doit-il par exemple être codé en BASE64 ou avec quelque chose d'autre?

153voto

Pablo Santa Cruz Points 73944

Vous pouvez inclure du contenu HTML. Une possibilité consiste à l'encoder dans BASE64 comme vous l'avez mentionné.

Une autre pourrait utiliser les balises CDATA .

Exemple utilisant CDATA :

 <xml>
    <title>Your HTML title</title>
    <htmlData><![CDATA[<html>
        <head>
            <script/>
        <head>
        <body>
        Your HTML's body
        </body>
        </html>
     ]]>
    </htmlData>
</xml>
 

Notez s'il vous plaît:

Séquence de caractères d'ouverture de CDATA: <![CDATA[

Séquence de caractères de fermeture de CDATA: ]]>

23voto

zzzzBov Points 62084

tant que votre contenu html n'a pas besoin de contenir un élément CDATA , vous pouvez contenir le code HTML dans un élément CDATA , sinon vous devrez échapper aux entités XML.

 <element><![CDATA[<p>your html here</p>]]></element>
 

CONTRE

 <element>&lt;p&gt;your html here&lt;/p&gt;</element>
 

8voto

Rich Points 1650

Le codage BASE64 a pour but de prendre des données binaires et de les conserver dans une chaîne. Cet avantage a un coût, une augmentation de la taille du résultat (je pense que c'est un ratio de 4 à 3). Il y a deux solutions. Si vous savez que les données seront du XML bien formé, incluez-le directement. L’autre option, plus intéressante, consiste à inclure le code HTML dans une section CDATA d’un élément du code XML.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X