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

AWT/Swing Java Discussion :

JTextPane, StyledDocument et fichier xml (Jdom) !


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 82
    Par défaut JTextPane, StyledDocument et fichier xml (Jdom) !
    Bonjour à tous,


    Je saisis du texte formatté à l'aide d'un StyledDocument,
    je souhaite sauvegarder ce texte en xml, pour cela je créé un Document avec Jdom, je me demande s'il existe une maniere simple et rapide de coder le texte formatté en xml ou si je dois tout faire à la main ?


    Merci de vos infos éventuelles

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    voici un code qu'une recherche google m'a renvoyé. Il utilise SAX, donc si tu veux rester en DOM il faudra te taper un peu de doc, mais ça te montre comment sauvegarder les attributs des Elements de ton Document.
    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
    Element e = textPane.getDocument().getDefaultRootElement();
    SAXTransformerFactory tf = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
    TransformerHandler handler = tf.newTransformerHandler();
    Transformer t = handler.getTransformer();
    t.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "UTF-16");
    StringWriter sw = new StringWriter();
    handler.setResult(new StreamResult(sw));
    handler.startDocument();
    parseElement(e, handler);
    handler.endDocument();
     
    ...
     
    private void parseElement(Element e, ContentHandler ch) {
      try {
        AttributeSet as = e.getAttributes();
        AttributesImpl a = new AttributesImpl();
        Enumeration ase = as.getAttributeNames();
        while (ase.hasMoreElements()) {
          Object name = ase.nextElement();
          Object value = as.getAttribute(name);
          a.addAttribute("", "", name.toString(), "string", value.toString());
        }
        ch.startElement("", "", "Element", a);
        int ec = e.getElementCount();
        if (ec == 0) {
          int start = e.getStartOffset();
          int len = e.getEndOffset() - start;
          if (start < textPane.getDocument().getLength()) {
            a = new AttributesImpl();
            a.addAttribute("", "", "Offset", "string", Integer.toString(start));
            try {
              ch.startElement("", "", "Text", a);
              String text = textPane.getDocument().getText(start, len);
              char[] textChars = new char[text.length()];
              text.getChars(0, text.length(), textChars, 0);
              ch.characters(textChars, 0, text.length());
              ch.endElement("", "", "Text");
            } catch(BadLocationException ble) {
            }
          }
        } else {
          for (int i=0; i<ec; i++) {
            parseElement(e.getElement(i), ch);
          }
        }
        ch.endElement("", "", "Element");
      } catch(SAXException saxe) {
        saxe.printStackTrace();
      }
    }
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre actif
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Par défaut
    Une petit tuto de Jdom qui est vraiment un le parseur de xml le plus simple pour les debutant
    http://cynober.developpez.com/tutoriel/java/xml/jdom/

Discussions similaires

  1. [JDOM] Validation fichier XML avec DTD grace à JDOM ?
    Par ederf dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 20/04/2009, 12h06
  2. [JDOM] création fichier XML & JDOM
    Par nono_13 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 01/08/2008, 12h13
  3. [JDOM] enregistrer un fichier XML avec JDOM
    Par fatenatwork dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 28/09/2007, 10h42
  4. [JDOM] Création d'un fichier xml avec jdom
    Par fabricew59 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 09/08/2006, 11h17
  5. [JDOM] Fichier xml généré par jdom
    Par vero59 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 05/08/2005, 16h30

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