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 :

Insertion d'une String dans un XML


Sujet :

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

  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Par défaut Insertion d'une String dans un XML
    Bonjour,
    J'ai un problème lors de la génération de mon xlm.
    pour ajouter un contenu à l'intérieur d'une balise parent avec la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element.addContent(String str)
    les < et > se remplace avec &lt; et &gt;
    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
    Il y a pas de magie, il faut construire de nouveaux objets Element, et c'est ça qu'il faut passer à addContent().
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 51
    Par défaut
    Bonjour,

    j'ai un problème similaire. Lorsque je fais un setTextContent("<(*.*<)") sur un Element, ça refuse d'écrire les "<" correctement lorsque j'affiche dans le terminal ..
    Comment faire ?

    Edit : J'utilise l'API DOM

  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
    C'est impossible. < sert à ouvrir une balise. Il ne peut donc pas faire autre chose.

    À la rigueur, certaines bibliothèques XML permettraient de générer

    mais ce n'est pas le cas de la bibliothèque DOM de base.

    Note : Tout cela n'a d'ailleurs aucune importance, en quoi l'apparence de ton fichier XML te soucie-t-elle ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 51
    Par défaut
    En réalité, j'aimerais créer une Node qui ressemble à ceci :

    <content> duTexteQuelconque <hr/> encoreDuTexte </content>


    Je ne veux en aucun cas mettre des "<(*.*<)" dans mon texte C'était juste pour la forme. Ca n'étais pas très précis, désolé.

    Y a-t-il une solution pour mon problème ?

    Merci

  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
    <hr/> est une balise, pas du texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    node.appendChild(document.createTextNode(" duTexteQuelconque "));
    node.appendChild(document.createElement("hr"));
    node.appendChild(document.createTextNode(" encoreDuTexte "));
    Autre possibilité, un peu plus maintenable mais moins directe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    final String XML_CONTENT = "<content> duTexteQuelconque <hr/> encoreDuTexte </content>";
     
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    Document contentDoc = builder.parse(new InputSource(new StringReader(XML_CONTENT)));
    Element contentNode = contentDoc.getDocumentElement();
     
    Node childNode = contentNode.getFirstChild();
    while(childNode != null) {
      document.adoptNode(childNode);
      node.appendChild(childNode);
      childNode = contentNode.getFirstChild();
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 51
    Par défaut
    La première méthode ne convient pas pour mon programme.
    J'ai donc essayé la deuxième et ça fonctionne, merci ! Vraiment pas simple "juste" pour ça, mais bon ..

    Encore un tout grand merci. Je n'y serai probablement pas parvenu sans votre aide !

    Bonne soirée

  8. #8
    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 sikin1989 Voir le message
    J'ai donc essayé la deuxième et ça fonctionne, merci ! Vraiment pas simple "juste" pour ça, mais bon ..
    Ce serait plus simple en JDOM... Mais le principe resterait le même : avoir une String qui contient un doc XML bien formé, le faire parser en un Document, et insérer le contenu dans l'élément où on voulait le mettre.
    Ça ne peut pas être hyper-trivial.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Ajout aléatoire d'une String dans une balise XML à partir d'un tableau de String
    Par chebmo1986 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 19/03/2009, 11h21
  2. Insertion d'une icone dans le SystemTray
    Par Vow dans le forum MFC
    Réponses: 23
    Dernier message: 25/01/2008, 14h50
  3. insertion d'une date dans visual foxpro
    Par yvescollet dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/05/2005, 15h39
  4. Comment déclarer une DataSource dans server.xml
    Par guillaume06 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 16/06/2004, 14h27
  5. Réponses: 6
    Dernier message: 24/07/2003, 12h39

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