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&amp;A</b> &euro;

Comment insérer cela dans le DOM XML comme suit?

<parentNode>
  <b>M&amp;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

Était-ce utile?

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&amp;A</b> &euro;

+

</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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top