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
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Mon Mar 20 17:57:00 2006