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 :

Ajouter une balise xmlns [JDOM]


Sujet :

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

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut Ajouter une balise xmlns
    Salut à tous,

    J'ai réalisé une application Java qui crée un fichier XML et y écrit des données, jusque là pas de souci... Mon problème est que je doit ajouter deux lignes, une à la ligne 2 (après <?xml version="1.0" encoding="UTF-8"?>) de mon fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <!--<?xml-stylesheet type="text/xsl" href="MeasDataCollection.xsl"?> -->
    , et la seconde, en première position à l'intérieur de la balise "mère" (comme un attribut en fait) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec"
    J'ai à peu près compris l'utilité des xml namespace mais je n'ai rien trouvé en ce qui concerne l'écriture via Java...

    Merci à tous pour le temps que vous prêterez à mon problème.

  2. #2
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Tu génères ton document avec quelle API? DOM, JDOM, à la main ?

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    Salut,
    Désolé, j'ai oublié de préciser : j'utilise jdom.

  4. #4
    Membre confirmé
    Homme Profil pro
    Developpeur web/Java
    Inscrit en
    Février 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Developpeur web/Java
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2008
    Messages : 98
    Par défaut
    Salut essaie de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Element entete = new Element("BALISE","http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec");
    Tu peux donc constater que le premier paramètre est le nom de la balise et que le second est ton namespace.

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    Salut bapfuror et les autres développeurs,
    La solution que tu m'as proposée ne fournit pas le résultat que je souhaite, dans mon XML, cette "balise" xmlns est en fait un namespace.

    J'ai également essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Namespace xmlns=Namespace.getNamespace("http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec");
    measCollecFile.setNamespace(xmlns);
    Et lorsque j'écris dans mon XML, le namespace xmlns est placé au bon endroit, dans la déclaration de ma balise mère, comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?xml version="1.0" encoding="UTF-8"?>
    <measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec">
    Mais elle se place de façon intempestive dans les éléments fils...
    Je ne sais pas si j'ai été suffisamment clair.

    Merci de m'aider si quelqu'un maîtrise ce sujet...

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    Re-salut,
    Petite précision quant à l'ajout du namespace dans les éléments qui ne doivent pas la contenir : le namespace est sous une forme différente de celle que j'ai réussit à avoir là où je veux, résultat obtenu grâce à ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Namespace xmlns = Namespace.getNamespace("http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec");
    measCollecFile.setNamespace(xmlns);
    measCollecFile.addContent(fileHeader);
    measCollecFile.addContent(measData);
    measCollecFile.addContent(fileFooter);
    Et dans le XML, j'obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="UTF-8"?>
    <measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec">
      <fileHeader xmlns="">
      </fileHeader>  
      <measData xmlns="">
      </measData>
      <fileFooter xmlns="">
      </fileFooter>
    Ce que je voudrais virer, c'est donc les {xmlns=""} mis en gras.

    Merci pour vos réponses.

  7. #7
    Membre confirmé
    Homme Profil pro
    Developpeur web/Java
    Inscrit en
    Février 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Developpeur web/Java
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2008
    Messages : 98
    Par défaut
    Salut,

    J'ai déjà eu ce problème il y a quelques temps. Je crois me rappeler que j'avais rajouté le namespace de la balise mère à toutes les balises filles.

    Bizarrerie du namespace ou alors quelque chose m'a échappée dans l'utilisation des namespaces mais cela fonctionne ...

  8. #8
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    Salut tout le monde,
    J' ai essayé ta solution bapfuror mais elle ne fonctionne pas non plus...
    Je suis toujours preneur de solutions quelles qu'elles soient...

    Merci à tous.

  9. #9
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Par défaut
    J'ai exactement le même problème que toi
    si t'as du nouveau tiens moi au courant stp
    merci beaucoup.

  10. #10
    Membre confirmé
    Homme Profil pro
    Developpeur web/Java
    Inscrit en
    Février 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Developpeur web/Java
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2008
    Messages : 98
    Par défaut
    Salut damdam44,

    Tu peux nous montrer ton code entier qui traite le xml peut-être que ça permettra de donner trouver une idée pour t'aider ensuite !

  11. #11
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Par défaut
    Citation Envoyé par damdam44 Voir le message
    Re-salut,
    Petite précision quant à l'ajout du namespace dans les éléments qui ne doivent pas la contenir : le namespace est sous une forme différente de celle que j'ai réussit à avoir là où je veux, résultat obtenu grâce à ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Namespace xmlns = Namespace.getNamespace("http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec");
    measCollecFile.setNamespace(xmlns);
    measCollecFile.addContent(fileHeader);
    measCollecFile.addContent(measData);
    measCollecFile.addContent(fileFooter);
    Et dans le XML, j'obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="UTF-8"?>
    <measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec">
      <fileHeader xmlns="">
      </fileHeader>  
      <measData xmlns="">
      </measData>
      <fileFooter xmlns="">
      </fileFooter>
    Ce que je voudrais virer, c'est donc les {xmlns=""} mis en gras.

    Merci pour vos réponses.
    il l'a mis en haut

  12. #12
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    Slut bapfuror,
    As-tu besoin d'une autre partie de code que celle que Rapidou t'a rappeller?

    De mon côté, j'ai beau chercher, je ne trouve toujours pas de solution au problème...

  13. #13
    Membre confirmé
    Homme Profil pro
    Developpeur web/Java
    Inscrit en
    Février 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Developpeur web/Java
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2008
    Messages : 98
    Par défaut
    Salut,

    J'ai essayé de faire un petit bout de code et j'obtiens ce XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="UTF-8"?>
    <measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec">
      <fileHeader />
      <measData />
      <fileFooter />
    </measCollecFile>
    mon code Java est le suivant :
    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
     
    import java.io.FileOutputStream;
    import org.jdom.*;
    import org.jdom.output.Format;
    import org.jdom.output.XMLOutputter;
     
    public class TestJd {
     
    	public static void enregistre(Document document,String fichier){
    		try{
    			XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
    			sortie.output(document, new FileOutputStream(fichier));
    		}catch (java.io.IOException e){
    			System.exit(10);
    		}
    	}
     
    	public static void main(String[] args) {
    		Element racine = new Element("measCollecFile","http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec");
    		Document document = new Document(racine);
    		Element header = new Element("fileHeader","http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec");
    		racine.addContent(header);
    		Element measData = new Element("measData","http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec");
    		racine.addContent(measData);
    		Element fileFooter = new Element("fileFooter","http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec");
    		racine.addContent(fileFooter);
    		enregistre(document,"c:\\test.xml");
    	}
    }
    Je pense que le résultat obtenu est celui que tu veux (mais j'ai p'tet zappé u truc) enfin test ce code et dis moi si cela te conviens !

  14. #14
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Par défaut
    Merci
    je teste tout de suite et je te tiendrais au courant

  15. #15
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    Merci je vais le tester aussi immédiatement.

  16. #16
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Par défaut
    c'est bon ça marche
    il fallait rajouter pour chaque nœud de la racine le nameSpace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Element header = new Element("fileHeader","");
    racine.addContent(header);
    Element measData = new Element("measData","http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec");

    ça donne :


    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="UTF-8"?>
    <measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.401/32401-610.zip#measCollec">
      <fileHeader xmlns="" />
      <measData />  <---Rien


    merci c'est bon pour moi

  17. #17
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Par défaut
    Citation Envoyé par bapfuror Voir le message
    Salut,

    J'ai déjà eu ce problème il y a quelques temps. Je crois me rappeler que j'avais rajouté le namespace de la balise mère à toutes les balises filles.

    Bizarrerie du namespace ou alors quelque chose m'a échappée dans l'utilisation des namespaces mais cela fonctionne ...

    en t'avais déjà répondu a ça

  18. #18
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    Ok ça marche également pour moi!
    Euh... petite précision pour les prochains développeurs qui tomberaient sur ce problème :
    il faut effectuer la déclaration de tous les éléments en utilisant le constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public Element(java.lang.String name, Namespace namespace)
    qui appartient à la classe org.jdom.element.

    A la prochaine tout le monde et encore merci à bopfuror et Rapidou pour leur collaboration.

  19. #19
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    J'avais oublié mais j'ai un deuxième petit problème pour l'ajout d'un comme,taire dans mon XML. Il est de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!--<?xml-stylesheet type="text/xsl" href="MeasDataCollection.xsl"?> -->
    J'ai essayé la classe org.jdom.Comment mais le problème est que celle-ci fonctionne bien avec des String, or il y a des guillemets dans mon expression... Elle ne fonctionne donc pas dans mon cas.

    Si quelqu'un a une idée...

    PS: il faut peut-être que j'ouvre une nouvelle discussion...?

    Merci à tous pour vos réponses.

  20. #20
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Par défaut
    personnellement j'ai aucune idée.
    mais je vais chercher et si je trouve quelque chose je te tiendrais au courant

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. ajouter une balise à la fin d'un document
    Par africanwinners dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2010, 16h57
  2. [SimpleXML] Ajouter une balise enfant à la balise parent
    Par thomaspaillot dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 07/04/2010, 12h46
  3. [JDOM] ajouter une balise
    Par aroua dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 22/04/2008, 11h52
  4. [CKEditor] Comment ajouter une balise HTML personnalisée
    Par roadruner dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 11/05/2007, 15h34

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