web-dev-qa-db-fra.com

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

Je dois 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?

66
newbie

Vous pouvez inclure du contenu HTML. Une possibilité est de 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: ]]>

125
Pablo Santa Cruz

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>
20
zzzzBov

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.

8
Rich

S'il vous plaît voir cela.

Le texte à l'intérieur d'une section CDATA sera ignoré par l'analyseur.

http://www.w3schools.com/xml/dom_cdatasection.asp

Ceci vous aidera à comprendre les bases du XML

1
loyola