Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

xml tech : Technologies XML

[xml-tech] Réf. : Re: creer une balise en java a un endroit precis

[xml-tech] Réf. : Re: creer une balise en java a un endroit precis

Auteur: <ziad.elkhatib@mpsa.com>
Date: 21/03/2006 - 09:18
X-Mailer: Lotus Notes Release 6.0.1CF1 March 04, 2003

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

Archive générée par hypermail 2.1.8 le 31/03/2006 - 10:22 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement