2014-01-08 3 views
0

Я новичок в использовании JDOM2 с Java и я не нашел, как не повторить открытый тег XMLпостроить XML с JDOM2 и добавить данные

это выглядит в файле XML, когда я создал мой "Конт":

<?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> 

это 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)); 

спасибо за ваше время :)

+0

Вы можете добавить содержимое compte в банке и добавить банкет, наконец, в документ. – Muthu

ответ

0

Я найти Soluti on:

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(); 
     } 
Смежные вопросы