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 :

Probleme symboles > <


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Par défaut Probleme symboles > <
    Salut à tous.

    j'ai un souci avec les symboles > et <. Je remplis une balise XML dans un fichier XML avec le contenu d'un String dans mon programme en java. Les symboles sont correctement affichés sur la sortie standart lorsque j'affiche le contenu de mon string. cependant, lorsque je consulte le fichier XML que j'ai remplis, les symboles > et < sont sous la forme "&gt;" et "&lt;"
    Comment résoudre ce probleme ? Avec une méthode de canonisation XML ?


    <ds:Object Id="9d289ad4-e0d9-4bca-8d1c-be694b6c4769">

    &lt;PRPA_IN201311UV xmlns="urn:hl7-org:v3" ITSVersion="XML .....

    </ds:Object>

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    clairement tu a fait un setText sur le contenu de ta balise, donc l'outil xml a protégé les < et > qui font partie des caractères réservés en xml. Si ce que tu voulais obtenir était


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ds:Object Id="9d289ad4-e0d9-4bca-8d1c-be694b6c4769">
     
    <PRPA_IN201311UV xmlns="urn:hl7-org:v3" ITSVersion="XML .....
     
    </ds:Object>
    Alors t'aurais du demander à ton outil xml de générer un balise PRPA_IN201311UV, de lui donner un namespace, etc.


    PS: sans code, difficile de corriger.

  3. #3
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Par défaut
    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
     
    //-----------------------------
    		// Ajout du message HL7 dans la partie Object
    		//----------------------------
     
     
     
    		//TODO remplir l'objet DocumentFragment avec le contenu du message HL7
     
            //message HL7.
            String contenuMessage = "";
            //filereader pour lire le fichier Hl7
            FileReader Lecteur;
            //instanciation du filereader
            Lecteur = new FileReader(fichierASigner);
     
                try{
     
               int car;
               StringBuffer contenu = new StringBuffer();
     
               while((car = Lecteur.read()) != -1){
                   contenu.append((char)car);
               }
               //fermeture du file reader.
               Lecteur.close();
     
                    contenuMessage = contenu.toString();
                    System.out.println(contenuMessage);
     
           }catch(IOException e){
                   System.out.println(e); }
     
                    //exemple avec un contenu de test simple
                    //creation de la partie Object de la signature
    		ObjectContainer obj = new ObjectContainer(doc);
     
    		//ajout de la requete HL7 a la partie Object, ici un contenu de test
    		DocumentFragment fragment = doc.createDocumentFragment();
     
    		fragment.setTextContent(contenuMessage); 
     
    		obj.appendChild(fragment);
     
    		obj.setId(Id);
     
    		sig.appendObject(obj);
     
    		sig.addDocument("#" + Id, null, Constants.ALGO_ID_DIGEST_SHA1);
    je pense que c'est meme encore plus moche que tu ne le pensais. je suis un peu desespéré. Please help

    PS: Vraiment désolé pour le multipost

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si tu veux travailler avec des apis xml, tu dois parser ton fichier d'origine, récupérer la balise que tu veux insérer sous forme d'un "Node" et appeler docFragment.appendChild.

    On ne peux pas juste prendre un bout de xml comme ça sortit de nulle part, sous forme d'une String et le tapper au milieu d'un arbre DOM en espérant que ca marche


    A noter que si ton but est de prendre un xml A, et de le modifier en un xml B, tu aura beaucoup plus facile de t'orienter sur les feuille de style xsd, c'est leur boulot de faire de la transformation xml

  5. #5
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Par défaut
    héhéh oui c'est trés laid en effet.

    Bon ok je vais faire un truc propre avec jdom et sax.

    le principe de mon boulot:

    j'ai un fichier1.xml

    <a> AAAA </a>
    <b> BBBB </b>
    <c></c>


    et un fichier2.xml:

    <d> DDDD </d>
    <e> EEEE </e>


    et je dois transformer mon fichier1.xml en ceci:

    <a> AAAA </a>
    <b> BBBB </b>
    <c><d> DDDD </d>
    <e> EEEE </e>
    </c>


    Jdom et SAX me paraissent adapteés: parcours de l'arboresence, stockage dans une liste, puis création de l'arboresence dans le fichier1.xml. non ?

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    une autre solution, c'est le mode bourrin sans l'api.
    Ton fichier 1 dans un String f1, ton fichier 2 dans une String f2, puis grosso merdo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    newF1 = f1.replaceAll("<c></c>",f2);


    Maintenant, j'espère que les bouts donnés ne sont pas complets, car comme présentés, ni fichier1 ni fichier 2 ne sont des fichier xml, donc bernik pour les utiliser avec les api jdom etc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec le symbole €.
    Par gefrey54 dans le forum iReport
    Réponses: 2
    Dernier message: 10/07/2007, 17h35
  2. Réponses: 5
    Dernier message: 23/05/2007, 11h43
  3. Probleme d'impression symbole € selon driver
    Par Mut dans le forum Périphériques
    Réponses: 2
    Dernier message: 05/07/2006, 11h42
  4. probleme a la compilation:Undefined symbols
    Par djobanaille dans le forum C++
    Réponses: 3
    Dernier message: 07/12/2005, 15h33

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