Bonjour,
Je viens vers vous car j'ai un doute sur la faisabilité de ce que je souhaite faire.
J'explique mon problème, j'ai un fichier XML qui est le contenu d'un fichier odt. Dans ce fichier, j'ai besoin de remplacer des balises par des valeurs en texte.
En utilisant jdom pas de soucis, je supprime l'élément avec un detach() et je rajoute le texte sous la balise du parent.
Le problème se pose lorsque j'ai un mélange de texte et d'élément comme l'exemple ci-dessous :
Je veux donc remplacer la chaine <text:database-display text:table-name="ModeleComplet" text:table-type="table" text:column-name="temp" text:database-name="BaseCad">Temp</text:database-display> par la valeur de temp (par exemple 71).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <text:p text:style-name="Standard"> <text:s /> vérifier que <text:database-display text:table-name="ModeleComplet" text:table-type="table" text:column-name="temp" text:database-name="BaseCad">Temp</text:database-display>est supérieur à 70 </text:p>
Et là, je ne vois pas comment lui dire où écrire la chaine, soit mon résultat n'apparait pas, soit elle remplace tout le texte.
Je ne suis pas très doué en Java, j'espère avoir été assez clair.
Merci d'avance de vos réponses.
Laurent
Pour info voici un bout de mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 String nomInstance =("//text:database-display[@text:column-name='" + nomChamp + "']"); XPath xpath = XPath.newInstance(nomInstance); List<Element> champs = xpath.selectNodes(racine); for(Element champ : champs) { //supprimer l'élément champ.detach(); // appliquer le texte nommé valeurChamp... je bloque }
Partager