2009-04-27 7 views
0

Je crée XML à l'exécution de son schéma est commeXML simple Question

<Item> 
    <Content>Hi</Content> 
</item> 

Le problème est quand je suis en train d'enregistrer des contenus HTML à cette balise

<Item> 
    <Content><strong>Hi<strong></Content> 
</item> 

Comment résoudre ce problème

Merci à l'avance

+0

De quel problème s'agit-il? –

+0

Son code HTML n'est peut-être pas entièrement compatible avec XML? Je veux dire, si c'est correct xhtml ça ira bien. – ewanm89

+0

-1 pour le titre non informatif – bortzmeyer

Répondre

0

La chaîne HTML doit être échappées avant de l'ajouter à le xml. Si vous utilisez .NET voici some ways pour le faire.

0

L'étiquette inférieure à (<) doit être échappée à l'aide de & lt; et même pour la balise > (& gt;)

+0

Ne pas oublier l'esperluette elle-même ('&'), qui doit d'abord être remplacé par '&'. –

1

Vous pouvez intégrer le contenu HTML dans une section CDATA:

<Item><![CDATA[ <Content><strong>Hi</strong></Content> ]]></item> 
2

La bonne réponse est de ne pas incorporer des balises en XML. Le XML ne doit définir que les données, l'analyseur doit le mettre dans le bon balisage, par exemple. tout Article-> Contenu dans <strong></strong>.

L'autre solution consiste à échapper les balises en utilisant des évasions XML: &lt; et &gt;.

2

Je suppose que vous avez un schéma qui permet à un élément Item de contenir un élément Content et que l'élément Content ne peut contenir que du texte ou CDATA ou similaire. Vous avez deux options dans ce cas.

Tout d'abord, vous pouvez échapper au code HTML en quelque sorte. Soit vous pourriez utiliser une section CDATA comme Fredrik l'a suggéré plus haut. Alternativement, vous pourriez échapper au bracketing comme ci-dessus. Ces deux solutions vous permettent de continuer à traiter le contenu du contenu sous forme de texte. Cela vous permet d'avoir un modèle de contenu simple pour votre élément. Vous pouvez également étendre votre schéma pour autoriser les éléments xhtml dans le cadre de l'élément Content. J'ai suggéré un moyen de cela here. Bien sûr, si votre contenu n'est pas hhtml xhtml cela ne fonctionnera pas. En réalité, le choix consiste à savoir si vous voulez ou non pouvoir analyser le code HTML incorporé dans le cadre de votre fichier xml ou non. Si vous voulez que ce soit du texte, échappez-vous. Si vous voulez qu'il soit analysable, étendez votre schéma.

+0

D'accord. Tout dépend de ce que vous voulez faire avec. Il pourrait y avoir des utilisations légitimes pour l'une ou l'autre méthode. –