0

I'm new to using JDOM2 with java and i don't find how to not repeat the open tag of xml

this look like this in the xml file when i created my "compte" :

<?xml version="1.0" encoding="UTF-8"?>
<banque>
  <compte>
    <numCompte>4465</numCompte>
    <nom>Antoine</nom>
    <solde>1684185</solde>
  </compte>
</banque><?xml version="1.0" encoding="UTF-8"?>
<banque>
  <compte id="0102">
    <numCompte>0102</numCompte>
    <nom>rzrzr</nom>
    <solde>85416</solde>
  </compte>
</banque>

this is the Java :

Element banque = new Element("banque");  

               Document document = new Document(banque);  

               Element compte = new Element("compte");  

               compte.setAttribute(new Attribute("id", this.idCompte));
               compte.addContent(new Element("numCompte").setText(this.idCompte));  
               compte.addContent(new Element("nom").setText(this.nom));  
               compte.addContent(new Element("solde").setText(this.solde));  

               document.getRootElement().addContent(compte);  

               XMLOutputter xmlOutput = new XMLOutputter();  

               xmlOutput.output(document, System.out);  

               xmlOutput.setFormat(Format.getPrettyFormat());  
               xmlOutput.output(document, new FileWriter(  
                 "generatedXmlFiles/listeCompte.xml",true));

thanks for your time :)

1
  • You can add the compte content in banque and add the banque , finally to document. Commented Jan 8, 2014 at 16:44

1 Answer 1

1

I've find the solution :

 try{

          Document document = null;
          Element root = null;
          File xmlFile = new File("generatedXmlFiles/listeCompte.xml");

        if(xmlFile.exists()){

              FileInputStream fis = new FileInputStream(xmlFile);
              SAXBuilder sb = new SAXBuilder();
              document = sb.build(fis);
              root = document.getRootElement();
              fis.close();
          }else{
              document = new Document();
              root = new Element("banque");
          }

          Element compte = new Element("compte");
          compte.setAttribute(new Attribute("idCompte", this.idCompte));
          compte.addContent(new Element("numCompte").setText(this.idCompte));
          compte.addContent(new Element("nom").setText(this.nom));
          compte.addContent(new Element("solde").setText(this.solde));

          root.addContent(compte);
          document.setContent(root);

          FileWriter writer = new FileWriter("generatedXmlFiles/listeCompte.xml");
            XMLOutputter outputter = new XMLOutputter();
            outputter.setFormat(Format.getPrettyFormat());
            outputter.output(document, writer);
            outputter.output(document, System.out);
            writer.close(); // close writer

          } catch (IOException io) {
            System.out.println(io.getMessage());
          } catch (JDOMException e) {
            e.printStackTrace();
        }
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.