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 :

Problème écriture code HTML [JDOM]


Sujet :

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

  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Par défaut Problème écriture code HTML
    Bonjour à tous,

    Je précise tout d'abord que j'ai découvert JDOM que très récemment, donc ma question peut être très simple (désolé aussi si je n'utilise pas tout à fait les bons termes)...

    J'ai un soucis au niveau de l'écriture depuis mon document JDOM vers mon fichier XML. Voici mon code :

    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
    	private static void saveXml(org.jdom.Document xml, String dest){
    		try {
     
    			FileOutputStream out = new FileOutputStream(dest);
    			XMLOutputter serializer = new XMLOutputter();
     
    			serializer.output(xml, out);
     
    			out.flush();
    			out.close();
    		}
    		catch (IOException e) {
    			System.err.println(e);
    		}
    	}
    Le fichier XML se génère bien, mais toutes les valeurs des balises qui contiennent elles-mêmes du code HTML sont converties en équivalent HTML (ex : < devient &lt;). Ce que j'aimerais arriver à faire c'est de générer toutes les données XML mais d'entourer les valeurs des balises avec <![CDATA[code html]]>.

    Est-ce qu'il y a un paramètre que l'on pourrait définir qui obligerait XMLOutputter à générer des données de type texte ?

    Merci par avance pour votre aide !

  2. #2
    Membre Expert
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Par défaut
    Bonsoir,


    Si tu faisais la chose ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    try{ 
        XMLOutputter outputter = new XMLOutputter("  ", true);
        outputter.output(myDocument, System.out);
    } catch (java.io.IOException e) {
        e.printStackTrace();
    }
     
     
    FileWriter writer = new FileWriter("/some/directory/myFile.xml");
    outputter.output(myDocument, writer);
    writer.close();

    Est ce que sa se déroulerais comme tu souhaites ?

  3. #3
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Par défaut
    Merci pour ton aide déjà, mais je ne comprend pas bien quoi mettre en paramètre du XMLOutputter (sachant que new XMLOutputter(" ", true);
    ne fonctionne pas)...
    The constructor XMLOutputter(String, boolean) is undefined
    J'ai aussi mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FileWriter writer = new FileWriter("c:\\test.xml");
    outputter.output(xml, writer);
    writer.close();
    ... dans le Try{}. Je me trompe ?

  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
    au lieu d'utiliser des noeuds de type Text pour stocker ton html, utilise des noeuds de type CDATA.

  5. #5
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Par défaut
    Exact c'est ça ! Merci beaucoup !

    Le code initial n'est donc pas à modifier, mais c'est avant, au moment de l'écriture de la valeur qu'il faut écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // On efface la valeur initiale
    element.setText("");
    // On inscrit un CDATA
    element.addContent(new CDATA("texte en <b>gras</b>"));
    ...et non le code suivant, qui a pour effet de "formater" les < > :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element.setText("texte en <b>gras</b>");
    Merci encore !

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

Discussions similaires

  1. Problème extraction Code HTML
    Par Lilartu dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 21/01/2013, 14h38
  2. Problème affichage code html dans textEdit
    Par mercure07 dans le forum Qt
    Réponses: 5
    Dernier message: 10/09/2009, 10h59
  3. Problème de code HTML
    Par Alban 56 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 05/07/2009, 07h17
  4. Réponses: 2
    Dernier message: 28/11/2007, 14h34
  5. Problème fonction die() incluant du code html
    Par ksper92 dans le forum Langage
    Réponses: 2
    Dernier message: 30/11/2006, 08h56

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