Comment insérer XHTML dans XML
Question
Je travaille avec JDom en ce moment. Je ne peux pas penser à une solution qui devrait essentiellement être un problème facile.
J'ai une chaîne xhtml valide:
<b>M&A</b> €
Comment insérer cela dans le DOM XML comme suit?
<parentNode>
<b>M&A</b>
€
</parentNode>
(Ce XML se déroule ensuite à un transformateur XSL, qui rend ensuite XHTML pour le navigateur)
J'ai trouvé les solutions «pseudo» suivantes, mais je ne sais pas si elles sont possibles:
Entités Unescape qui ne sont pas des entités XML, puis insérer.
REINSCAPE SEULEMENT XML intime, puis html déscape la chaîne entière, puis insérez.
Taras
La solution
Je suppose que tu peux utiliser Jtidy pour transformer les entités nommées en personnes numérotées. Après cela, le XHTML est également valide XML.
Autres conseils
Bien que € soit une entité XHTML valide, il n'est pas valide XML.
Malheureusement, je ne sais rien sur JDom, mais si c'est possible, vous pouvez essayer d'ajouter DTD Déclarations entités Comme <!ENTITY euro "€">
. Et, peut-être, mettez toutes les balises XHTML dans leur espace de noms approprié (<parentNode xmlns:x="http://www.w3.org/1999/xhtml"><x:b>...</x:b></parentNode>
)
Créer une chaîne contenant
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
+
Votre contenu XHTML, dans ce cas <b>M&A</b> €
+
</html>
puis analyser cette chaîne pour obtenir un document. Ensuite, obtenez tout le contenu à l'intérieur de l'élément racine, qui sera votre contenu XHTML et placez-le dans votre élément ParentNode. Vous devrez peut-être tenir compte du fait que le contenu provient d'un document différent.