creer une balise en java a un endroit precis

[email protected]
Newsgroups gmane.text.xml.french.tech
Message-ID <OFE44902E2.2B3D8B8E-ONC1257137.005C4581-C1257137.005D1A8F@mpsa.com>



Bonsoir tout le monde,

J'ai document xml avec par exemple:
<test>
      <test_1/>
      <test_2/>
      <test_3/>
      <test_4/>
      <test_5/>
<test>

Je voudrais supprimer la balise test_3 et creer une balise test_A à la
place. Ca c'est bon, j'arrive a le faire :-) Mon soucis c'est que la balise
test_A vient se placer a la fin:
<test>
      <test_1/>
      <test_2/>
      <test_4/>
      <test_5/>
      <test_A/>
<test>

Moi je voudrais placer la balise test_A après la balise test_2 et avant la
balise test_4 afin d'avoir:
<test>
      <test_1/>
      <test_2/>
      <test_A/>
      <test_4/>
      <test_5/>
<test>

Quelqu'un aurait il une suggestion ?

Pour info, voici le code que j'utilise pour faire ce que je fais:
                  //xpath permettant de rechercher dand la liste de toutes
les balises NouvellePhrase
                  //la nouvelle phrase dont l'id est oldPhraseId
                  String xpath = "(//NouvellePhrase)[position()="
+oldPhraseId+"]";

                  // se positionner sur le BlocTexte du titre de la méthode
                  NodeList listNouvellePhraseNode =
xInterrogate.evaluate(xpath, xmlDocument);
                  Node blocTexteNouvellePhraseNode =
listNouvellePhraseNode.item(0).getParentNode();

                  //on supprime le noeud composant l'element BlocTexte
                  if(listNouvellePhraseNode!=null &&
listNouvellePhraseNode.getLength() > 0) {
                        for(int
i=0;i<listNouvellePhraseNode.getLength();i++) {

blocTexteNouvellePhraseNode.removeChild(listNouvellePhraseNode.item(i));
                        }
                  }

                  //on reconstruit la nouvelle phrase avec la balise
"PhraseTemporaire"
                  if(xmlFlux == null){
                        Element newELE = getPhraseTemporaireElement();
                        blocTexteNouvellePhraseNode.appendChild(newELE);
                  }
                  else{
                        Document xmlFluxDoc = loadXMLString(xmlFlux);

                        //Element newELE = xmlFluxDoc.getDocumentElement();
                        Element newELE = getPhraseElement(xmlFluxDoc);

                        blocTexteNouvellePhraseNode.appendChild(newELE);
                  }

      private Element getPhraseTemporaireElement() {
            // on créé <PhraseTemporaire></PhraseTemporaire>
            Element tempPhraseNode =
xmlDocument.createElement(XML_DOCUMENT_TEMP_PHRASE_NAME_NODE);
            // on créé <texte></texte>
            Element tempPhraseNodeTexteNode =
xmlDocument.createElement(XML_DOCUMENT_TEMP_PHRASE_TEXTE_NAME_NODE);
            // on rajoute la valeur au noeud newPhraseTexteNode
            tempPhraseNodeTexteNode
.appendChild(xmlDocument.createTextNode(newPhrase));
            // on rajoute le noeud <texte> à <PhraseTemporaire>
            tempPhraseNode.appendChild(tempPhraseNodeTexteNode);

            return tempPhraseNode;
      }

Merci
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.