Bonjour,
J'ai un problème lors de la génération de mon xlm.
pour ajouter un contenu à l'intérieur d'une balise parent avec la fonctionles < et > se remplace avec < et >Code:Element.addContent(String str)
Merci de votre aide.
Version imprimable
Bonjour,
J'ai un problème lors de la génération de mon xlm.
pour ajouter un contenu à l'intérieur d'une balise parent avec la fonctionles < et > se remplace avec < et >Code:Element.addContent(String str)
Merci de votre aide.
Il y a pas de magie, il faut construire de nouveaux objets Element, et c'est ça qu'il faut passer à addContent().
Bonjour,
j'ai un problème similaire. Lorsque je fais un setTextContent("<(*.*<)") sur un Element, ça refuse d'écrire les "<" correctement lorsque j'affiche dans le terminal ..
Comment faire ?
Edit : J'utilise l'API DOM
C'est impossible. < sert à ouvrir une balise. Il ne peut donc pas faire autre chose.
À la rigueur, certaines bibliothèques XML permettraient de générer
mais ce n'est pas le cas de la bibliothèque DOM de base.Code:<![CDATA[ <(*.*<) ]]>
Note : Tout cela n'a d'ailleurs aucune importance, en quoi l'apparence de ton fichier XML te soucie-t-elle ?
En réalité, j'aimerais créer une Node qui ressemble à ceci :
<content> duTexteQuelconque <hr/> encoreDuTexte </content>
Je ne veux en aucun cas mettre des "<(*.*<)" dans mon texte ;) C'était juste pour la forme. Ca n'étais pas très précis, désolé.
Y a-t-il une solution pour mon problème ?
Merci :)
<hr/> est une balise, pas du texte.
Autre possibilité, un peu plus maintenable mais moins directe :Code:
1
2
3 node.appendChild(document.createTextNode(" duTexteQuelconque ")); node.appendChild(document.createElement("hr")); node.appendChild(document.createTextNode(" encoreDuTexte "));
Code:
1
2
3
4
5
6
7
8
9
10
11
12 final String XML_CONTENT = "<content> duTexteQuelconque <hr/> encoreDuTexte </content>"; DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document contentDoc = builder.parse(new InputSource(new StringReader(XML_CONTENT))); Element contentNode = contentDoc.getDocumentElement(); Node childNode = contentNode.getFirstChild(); while(childNode != null) { document.adoptNode(childNode); node.appendChild(childNode); childNode = contentNode.getFirstChild(); }
La première méthode ne convient pas pour mon programme.
J'ai donc essayé la deuxième et ça fonctionne, merci ! Vraiment pas simple "juste" pour ça, mais bon ..
Encore un tout grand merci. Je n'y serai probablement pas parvenu sans votre aide !
Bonne soirée :)