Ok merci Hervé :-)
En fait, mon soucis c'est que je n'identifie pas forcement la balise
precedente ou la balise suivante... Ce que je fais en fait c'est remplacer
une balise avec tous ses enfants par une autre balise possedant des enfants
aussi...
Je vais etre plus precis dans mon exemple:
<test>
<mot>
<a>aaa</a>
<b>bbb</b>
</mot>
<NouvellePhrase id="44">
<texte>nouvelle phrase 44</texte>
</NouvellePhrase>
<NouvellePhrase id="12">
<texte>nouvelle phrase 12</texte>
</NouvellePhrase>
<NouvellePhrase id="63">
<texte>nouvelle phrase 63</texte>
</NouvellePhrase>
</test>
Je voudrais pointer vers le noeud de la nouvelle phrase 12 par exemple a
l'aide d'un xpath et remplacer le noeud par un autre noeud qui serait:
<PhraseTemporaire>
<texte>toto</texte>
</PhraseTemporaire>
Merci
Herve AGNOUX
<herve.agnoux@di
aam-informatique Pour
.com> xml-tech@xmlfr.org
Envoyé par : cc
xml-tech-bounce@
xmlfr.org Objet
[xml-tech] Re: creer une balise en
java a un endroit precis
21/03/2006 09:49
Veuillez
répondre à
xml-tech@xmlfr.o
rg
Le Lundi 20 Mars 2006 16:56, ziad.elkhatib@mpsa.com a écrit :
>
> Quelqu'un aurait il une suggestion ?
>
Il faut utiliser Node.insertBefore.
Voici un exemple ; pardonnez le coté un peu expéditif des choses.
/*
* CreerUneBaliseEnJavaEnUnEndroitPrecis.java
*
* Created on 21 mars 2006, 08:07
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package village;
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
/**
*
* @author herve
*/
public class CreerUneBaliseEnJavaEnUnEndroitPrecis
{
public static void main(String[] args) throws Exception
{
DocumentBuilderFactory fabriqueDeConstructeur;
DocumentBuilder db;
StringReader xml;
Document un;
NodeList filstest;
Element root;
Element quatrième;
Element nouveauA;
DOMSource source;
StreamResult resultat;
StringWriter caracteresxmlresultat;
// on construit le Document DOM que l'on place dans "un".
fabriqueDeConstructeur = DocumentBuilderFactory.newInstance();
fabriqueDeConstructeur.setNamespaceAware(true);
db = fabriqueDeConstructeur.newDocumentBuilder();
xml = new StringReader(
"<test>"+
"<test_1/>"+
"<test_2/>"+
"<test_3/>"+
"<test_4/>"+
"<test_5/>"+
"</test>");
un = db.parse(new InputSource(xml));
// on insère le bon élément à la bonne place.
root = un.getDocumentElement();
filstest = root.getChildNodes();
quatrième = (Element)filstest.item(3);
nouveauA = un.createElement("test_A");
root.insertBefore(nouveauA, quatrième);
// et on affiche le résultat, en toute simplicité et facilité.
caracteresxmlresultat = new StringWriter();
source = new DOMSource(un);
resultat = new StreamResult(caracteresxmlresultat);
TransformerFactory.newInstance().newTransformer().transform(
source, resultat);
System.out.println("Enjoy : "+caracteresxmlresultat.toString());
}
}
Cordialement.
--
SARL diaam informatique - 04 77 25 43 28
Ingenierie, développements de systèmes d'information
http://www.diaam-informatique.com
--
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)
--
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 Tue Mar 21 10:18:24 2006