DOM ->String

DOM ->String - Java - Programmation

Marsh Posté le 16-12-2007 à 23:41:07    

Bonsoir à tous.
 
Voilà ca fait x semaines que je m'arrache les cheveux  à chercher sur le web.  :pt1cable:  
Mais quelqu'un saurait comment convertir un Document (un DOM) en un String???
 
C'est pour le sauvegarder en db ou l'envoyer sur une page jsp.
 
Alors il y a jTidy qui permet de sortir le résultat sur un outputStream, mais par la suite je sais pas comment convertir ce outputStream en String.
Bref j'ai chercher sur le net, j'ai trouvé quelques sois disant solutions mais qui ne fonctionnent pas.
 
Vous auriez une solution  :(  ?


Message édité par Profil supprimé le 16-12-2007 à 23:42:03
Reply

Marsh Posté le 16-12-2007 à 23:41:07   

Reply

Marsh Posté le 16-12-2007 à 23:51:36    

Bon chercher plus j'ai trouvé:  :sweat:  
 

Code :
  1. ByteArrayOutputStream fileOut = new ByteArrayOutputStream();
  2.   tidy.pprint(doc, fileOut);
  3.   String myString = fileOut.toString();
  4.   System.out.print(myString);


 
 :hello:

Reply

Marsh Posté le 17-12-2007 à 00:58:59    

mmh ben finalement oui et non.
 
Il ne m'imprime pas les dom à chaque fois.
 
Quelqu'un a déjà eu ce prob?

Reply

Marsh Posté le 17-12-2007 à 10:25:27    

Va voir du côté de javax.xml.transform.* (le sous-package stream peut t'intéresser). En 4-5 lignes, tu craches tout vers un StringWriter et tu gagnes la guerre.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 17-12-2007 à 13:43:16    

Tout à fait ca marche.  :jap:  
 
Mais maintenant j'ai autre problème  :D . L'encodage.
 
Original:  méi
Résultat: méi
 
Ce résultat est obtenu via jTidy et aussi par xml.transform même avec l'encoding iso:
 

Code :
  1. outputformat.setEncoding("ISO-8859-1" );
  2.   XMLSerializer serializer = new XMLSerializer();
  3.   serializer.setOutputFormat(outputformat);


UTF-8 ca n'arrange pas les choses.
 
Une idée  :??: ?
 
 
 

Reply

Marsh Posté le 17-12-2007 à 13:49:42    

Ca sent l'UTF-8, donc doit y avoir un problème d'encodage quelque part. Vérifie que la création de l'XML est bonne à la base ; par exemple, tu dois avoir "méi" et non pas "méi" dans ton fichier XML si l'encodage spécifié est UTF-8 sinon y aura des soucis au décodage.
Si c'est bon à l'entrée, alors fais bien gaffe à utiliser le même encodage lors du transform (si l'encodage de ton XML est UTF-8, alors fais un setEncoding sur UTF-8 aussi).
 
Sinon, je vois pas... faut juste que tout soit cohérent de bout en bout et tu devrais retrouver tes petits [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 17-12-2007 à 14:49:58    

Ok.
Merci pour ces infos ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed