IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

Ajout d'éléments à partir de formulaire vers XML avec l'attribut id qui s'incrémente


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 169
    Par défaut Ajout d'éléments à partir de formulaire vers XML avec l'attribut id qui s'incrémente
    Bonjour,


    j'ai une application qui permet d'ajouter les champs du formulaire dans un fichier xml


    formulaire de saisie en jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    	pageEncoding="ISO-8859-1"%>
    <%@taglib prefix="s" uri="/struts-tags"%>
    <html>
    <head>
    <title>Document Form</title>
    <meta name="DC.Title" xml:lang="EN" content="Dublin Core " />
    <meta name="DC.Creator" content="Alan Kelsey" />
    <meta name="DC.Subject" xml:lang="EN" content="Dublin Core Meta Tags" />
    <meta name="DC.Description" xml:lang="EN" content="documents" />
     
    </head>
    <body>
    <s:form action="DocumentAction" method="post">
    	<h2>Formulaire d'ajout de Document</h2>
    	<s:textfield type="text" name="titre" label="Titre" size="20"></s:textfield>
    	<s:textfield type="text" name="creator" label="Creator" size="20"></s:textfield>
    	<s:textfield type="text" name="subject" label="Subjet" size="20"></s:textfield>
    	<s:textfield type="text" name="description" label="Description"	size="20"></s:textfield>
    	<s:form action="">
    	<s:file name="upload" label="File" size="20"/>
    	<s:submit type="submit" value="Enregistrer un document"></s:submit>
    	</s:form>
     
    </s:form>
    </body>
    </html>
    la classe DocumentAction.java qui permet l'ajout d'element au fichier xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
     
    package beanAction;
     
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.List;
    import org.jdom2.Attribute;
    import org.jdom2.Document;
    import org.jdom2.Element;
    import org.jdom2.JDOMException;
    import org.jdom2.input.SAXBuilder;
    import org.jdom2.output.Format;
    import org.jdom2.output.XMLOutputter;
     
    import com.opensymphony.xwork2.ActionSupport;
     
    public class DocumentAction extends ActionSupport {
     
    	private static final long serialVersionUID = 1L;
    	private String titre;
    	private String creator;
    	private String subject;
    	private String description;
    	private int id;
     
    	static Element racine = new Element("documents");
    	static Document doc = new Document(racine);
     
    	public String execute() throws Exception {
    		Element document = new Element("document");
    		racine.addContent(document);
     
     
    		Element titre = new Element("titre");
    		document.addContent(titre.setText(getTitre()));
     
    		Element creator = new Element("creator");
    		document.addContent(creator.setText(getCreator()));
     
    		Element subject = new Element("subject");
    		document.addContent(subject.setText(getSubject()));
     
    		Element description = new Element("description");
    		document.addContent(description.setText(getDescription()));
     
    		XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
    		//sortie.output(document, System.out);
    		sortie.output(doc, new FileOutputStream("C:/Documents and Settings/Administrateur/Mes documents/workspace/GED-1.1/ressources/documents.xml"));
     
     
     
     
    		return null;
     
    	}
     
    	// getters and setters
    	public String getTitre() {
    		return titre;
    	}
     
    	public void setTitre(String titre) {
    		this.titre = titre;
    	}
     
    	public String getCreator() {
    		return creator;
    	}
     
    	public void setCreator(String creator) {
    		this.creator = creator;
    	}
     
    	public String getSubject() {
    		return subject;
    	}
     
    	public void setSubject(String subject) {
    		this.subject = subject;
    	}
     
    	public String getDescription() {
    		return description;
    	}
     
    	public void setDescription(String description) {
    		this.description = description;
    	}
     
    }

    fichier xml : document.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="UTF-8"?>
    <documents>
     
    </documents>

    ce formulaire permet dajouter un element document avec les enfants (titre, creator, subject, description)

    mon problem c'est que je veux ajouter un attribut id pour chaque element document

    je n'ai que ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Attribute id = new Attribute("id","1");
          document.setAttribute(id);
    pour faire l'ajout d'un attribut a un document mais le problem c'est qu'il met la meme valeur pour tout les documents ajouté.


    comment je vais faire pour qu'il s'incremente

    comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    <document id="1">
    ici le contenu des champs saisi dans le formulaire 
    </document>
     
    <document id="2">
    ici le contenu des champs saisi dans le formulaire 
    </document>
    j'espère que j'ai bien eclaircir mon problem pour que vous puissez m'aider


    merci de votre aide ^^

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    ?

    En incrémentant un entier, peut-être ?
    Tu sais, i++, tout ça...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 169
    Par défaut
    wé je connais i++

    mais comment utiliser dans mon cas ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Sans déconner ?
    Par pitié, la prochaine fois, essaie de te rappeler tout seul que Java marche exactement de la même façon quand on traite des formulaire JSP, du XML, ou quoi que ce soit d'autre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monElement.setAttribute("id", String.valueOf(i));
    i++;
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 169
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monElement.setAttribute("id", String.valueOf(i));
    i++;
    [/QUOTE]

    j'ai essayer ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     int i=0;
    document.setAttribute("id", String.valueOf(i));
           	++i;
    mais ca marche pas il affiche toujours le meme nombre

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Je... Je sais pas quoi dire. Je pensais que tu savais programmer en Java, manifestement c'est pas le cas.

    Il faut apprendre le Java d'abord, et faire des trucs élaborés avec, ensuite.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    En fait, en te relisant, je ne comprends pas : tes documents XML ne contiennent qu'une seule balise <document>, donc il n'y a qu'un seul attribut id, et il est forcément unique, non ?

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="UTF-8"?>
    <documents>
      <document id="1">
      </document>
    </documents>

    Là, dans ton fichier il n'y a qu'un seul id et il n'y en aura toujours qu'un seul. Donc il est unique. Logique.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 169
    Par défaut
    voila j'ai trouvé ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class Incrementer {
    	    public static void main(String[] args){
    	        int i = 0;
    	        i++;
    	        System.out.println(i);    // "1"
    	        ++i;             
    	        System.out.println(i);    // "2"
    	       i++;
    	       System.out.println(i);
    	       ++i;
    	       System.out.println(i);
    	    }
    	}
    qui me donne le resultat dans la console :

    moi j'ai fichier xml comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version="1.0" encoding="UTF-8"?>
    <documents>
     
    </documents>
    et j'ai un formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    	pageEncoding="ISO-8859-1"%>
    <%@taglib prefix="s" uri="/struts-tags"%>
    <html>
    <head>
    <title>Ajout Document </title>
    <meta name="DC.Title" xml:lang="EN" content="Dublin Core " />
    <meta name="DC.Creator" content="Alan Kelsey" />
    <meta name="DC.Subject" xml:lang="EN" content="Dublin Core Meta Tags" />
    <meta name="DC.Description" xml:lang="EN" content="documents" />
    <meta name="DC.Date" xml:lang="EN" content="date" />
     
    </head>
    <body>
    <center>
    	<s:form action="AjoutDocumentAction" method="post" style="width:50%;margin:auto;background-color:green;padding-bottom:15px;">
    		<h2 style="text-align:center;color:white;background-color:green;"><h2>Formulaire d'ajout de Document</h2>
    <%-- 	    <p style="text-align:center;"><s:textfield type="text" name="id" label="ID" size="20"></s:textfield> --%>
    		<p style="text-align:center;"><s:textfield type="text" name="titre" label="Titre" size="20"></s:textfield>
             <p style="text-align:center;"><s:textfield type="text" name="description" label="Description" size="20"></s:textfield>
            <p style="text-align:center;"><s:textfield type="text" name="subject" label="Sujet" size="20"></s:textfield>
             <p style="text-align:center;"><s:textfield type="text" name="creator" label="Createur" size="20"></s:textfield>
            <p style="text-align:center;"><s:textfield type="text" name="date" label="Date d'ajout" size="20"></s:textfield>
     
    <%-- 		 <p style="text-align:center;">	<s:file name="upload" label="File" />  --%>
    <%-- 	<s:file name="fileUpload" label="Select a File to upload" size="40" />  --%>
     
            <p style="text-align:center;width:50%;margin:auto;"><s:reset type="reset" value="Annuler"></s:reset>
    		<p style="text-align:center;width:50%;margin:auto;"><s:submit type="submit" value="Ajouter un document"></s:submit>
     
    	</s:form>
    </center>
    </body>
    </html>
    qui me permet d'ajouter des document comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <document>
    </document>
    a travers cette classe action bean

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    
    
    package beanAction;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.List;
    import org.jdom2.Attribute;
    import org.jdom2.Document;
    import org.jdom2.Element;
    import org.jdom2.JDOMException;
    import org.jdom2.input.SAXBuilder;
    import org.jdom2.output.Format;
    import org.jdom2.output.XMLOutputter;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class AjoutDocumentAction extends ActionSupport {
    
    	private static final long serialVersionUID = 1L;
    
    	private String titre;
    	private String createur;
    	private String sujet;
    	private String description;
    	private String date;
            private int id;
     
    	
    	static Element racine = new Element("documents");
    	static Document doc = new Document(racine);
    
    	public String execute() throws Exception {
    		
    		Element document = new Element("document");
    		racine.addContent(document);
    
    		Attribute id = new Attribute("id","ici l'attribut id qui doit s'incrementer");
    		document.setAttribute(id);
    		
    		Element titre = new Element("titre");
    		document.addContent(titre.setText(getTitre()));
    		
    //			Element id = new Element("id");
    //			document.setAttribute("id",for(i=0;i<10;i++){});	
    		
    
    
    		Element creator = new Element("createur");
    		document.addContent(creator.setText(getCreator()));
    
    		Element subject = new Element("sujet");
    		document.addContent(subject.setText(getSubject()));
    
    		Element description = new Element("description");
    		document.addContent(description.setText(getDescription()));
    		
    		Element date = new Element("date");
    		document.addContent(date.setText(getDate()));
    
    		XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
    		// sortie.output(document, System.out);
    		sortie.output(doc, new FileOutputStream("C:/workspace/GED-1.1/ressources/documents.xml"));
    
    		
    
    	
    		return null;}
    
    	// getters and setters
    	
    	public int getId() {
    		return id;
    	}
    
    	public void setId(int id) {
    		this.id = id;
    	}
    
    	public String getTitre() {
    		return titre;
    	}
    
    	public void setTitre(String titre) {
    		this.titre = titre;
    	}
    
    	public String getCreator() {
    		return createur;
    	}
    
    	public void setCreator(String creator) {
    		this.createur = creator;
    	}
    
    	public String getSubject() {
    		return sujet;
    	}
    
    	public void setSubject(String subject) {
    		this.sujet = subject;
    	}
    
    	public String getDescription() {
    		return description;
    	}
    
    	public void setDescription(String description) {
    		this.description = description;
    	}
    	public String getDate() {
    		return date;
    	}
    
    	public void setDate(String date) {
    		this.date = date;
    	}
    }
    le probleme c'est dans les lignes en rouge

    comment appliquer l'exemple qui est au debut dans ma classe action bean

    note: je travaille avec struts2 et aussi l'api jdom qui me permet de manipuler mon fichier xml

    merci de m'aider

    Cordiallement Yassine ^^

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Citation Envoyé par fruwen7 Voir le message
    comment appliquer l'exemple qui est au debut dans ma classe action bean
    Ben déjà il faudrait utiliser i plus d'une fois. Parce que là tu crées un seul document, qui utilise i une seule fois.

    Ton exemple de départ utilise i 4 fois. Il n'y a donc rien à appliquer, c'est juste pas la même chose.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 169
    Par défaut
    donc je doit faire une boucle

    comment faire ca ?

  11. #11
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Comment faire quoi ? Une boucle ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int i = 0; i < nombreDeDocumentsACreer; i++) {
      creerUnDocumentAvecCommeId(i);
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 169
    Par défaut
    comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    for(int i = 0; i > 7; i++) {
     
    			Attribute id = new Attribute("id","i");
    			document.setAttribute(id);
     
    			}

  13. #13
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 169
    Par défaut
    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	class Incrementer {
    	    public static void main(String[] args){
     
     
    	        for(int i=0; i<10;i++){
     
    		        System.out.println(i);   
     
    	        }
     
    	    }
    	}
    En sortie :
    1
    2
    3
    4
    5
    6
    7
    8
    9

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut
    for(int i = 0; i > 7; i++) {

    Attribute id = new Attribute("id","i");
    document.setAttribute(id);

    }
    slt

    ici tu n'utilise en aucun cas ta variable i

    pour pouvoir l'utiliser tu devrais faire un truc du genre

    for(int i = 0; i < 7; i++) {

    Attribute id = new Attribute("id","" + i);
    document.setAttribute(id);

    }

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/06/2007, 13h14
  2. formulaire vers etat avec parametre
    Par pat1545 dans le forum Access
    Réponses: 2
    Dernier message: 21/07/2006, 12h48
  3. Extraire le 2eme élément à partir d'un file xml.
    Par rootdaoud dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 17/05/2006, 17h39
  4. [débutant]XML vers XML avec XSL
    Par tokamak dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 11/07/2005, 10h27
  5. XML vers XML avec XSL
    Par guizz79 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/06/2005, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo