Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2844 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Recuperer le resultat d'une tranformation xslt dans un string

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recuperer le resultat d'une tranformation xslt dans un string

n°1622572
vendeeman
Posté le 11-10-2007 à 18:47:54  profilanswer
 

Bonsoir à tous,
 
mon problème est super simple. Je veux juste faire une transformation (en java) xsl + xml => xml mais tout en mémoire. J'ai beau chercher je ne trouve pas exactement ce qu'il me faut sur le net.
 
En gros la, j'envoie en string le contenu de mon fichier xsl, le contenu de mon fichier xmlsource en byte[] et je tente de récupérer tout ça en ByteArrayOutputStream . Mais ça ne me dérange pas de tout faire en string (envoyer le contenu du fichier xsl et xml en string et recupérer le contenu de mon nouveau xml en string. Avez une solution svp?
 
Voici mon code:
private ByteArrayOutputStream getXmlFormatTAB(String inputXslFileNameXMLtoXML,byte[] xmlSource)
 {
  TransformerFactory factory = TransformerFactory.newInstance();
   
  ClassLoader loader = PDFGenerator.class.getClassLoader();
  InputStream xsltInputStream = loader.getResourceAsStream("WEB-INF/"
    + inputXslFileNameXMLtoXML);
  InputStream xmlInputStream = loader.getResourceAsStream("WEB-INF/"
    + inputXslFileNameXMLtoXML);
  Result resultat = null;
   
  ByteArrayOutputStream out = new java.io.ByteArrayOutputStream();
  try {
   // définit l'entrée XSLT
   _transformerXMLtoXML = factory.newTransformer(new StreamSource(
     xsltInputStream));
   
   // Set the value of a <param> in the stylesheet
   _transformerXMLtoXML.setParameter("versionParam", "2.0" );
   // Set the value of a <param> in the stylesheet
   _transformerXMLtoXML.setParameter("versionParam", "2.0" );
   
   // La source est le fichier xml
   InputStream input_l = new ByteArrayInputStream(xmlSource);
   Source src = new StreamSource(input_l);
   
   // Déclaration du resultat
   resultat = new StreamResult(out);
 
   _transformerXMLtoXML.transform(src, resultat);
  }
  catch (Exception e) {
   e.printStackTrace();
  }
  return out;
 }
 
 
Merci d'avance à vous tous,
 
Vdm

mood
Publicité
Posté le 11-10-2007 à 18:47:54  profilanswer
 

n°1625276
candide2
Posté le 17-10-2007 à 11:09:12  profilanswer
 

Bonjour,
je ne sais pas si ça peut t'aider mais voilà ce que j'utilise :
 
/** Creates a new instance of XSLTransform
   * @param xml_url xml file to explore
   * @param xslIS xsl use to transform (coming from an InputStream)
   * the result is store in String[][] tabRes
   */
  public XSLTransform(String xml_url, InputStream xslIS) throws Exception {
     
    TransformerFactory tfactory = TransformerFactory.newInstance();
     
    try {  
      InputStream xmlStream = new FileInputStream( xml_url );
      StreamSource xmlSource = new StreamSource( xmlStream );
       
      StreamSource xslSource = new StreamSource( xslIS );
      Templates templates = tfactory.newTemplates( xslSource );
      Transformer transformer = templates.newTransformer();
       
      StringWriter sos = new StringWriter();
      StreamResult out = new StreamResult( sos );
       
      transformer.transform( xmlSource, out );
       
      sos.close();
       
      result = sos.toString();
       
      /*System.out.println( sos.toString() );*/
    }
    catch ( IOException ex ) {
      throw new Exception("XSLTransform on file " + xml_url + " : \n" + ex.toString());
    }

n°1631769
vendeeman
Posté le 26-10-2007 à 15:18:04  profilanswer
 

Merci de votre aide,
 
je poste le code que j'utilise et qui fonctionne:
 
private ByteArrayOutputStream getXmlFormatTAB(String inputXslFileNameXMLtoXML,byte[] xmlSource)
 {
  TransformerFactory factory = TransformerFactory.newInstance();
   
  ClassLoader loader = PDFGenerator.class.getClassLoader();
  InputStream xsltInputStream = loader.getResourceAsStream("WEB-INF/"
    + inputXslFileNameXMLtoXML);
  Result resultat = null;
   
  ByteArrayOutputStream out = new java.io.ByteArrayOutputStream();
  try {
   // définit l'entrée XSLT
   _transformerXMLtoXML = factory.newTransformer(new StreamSource(
     xsltInputStream));
   
   // Set the value of a <param> in the stylesheet
   _transformerXMLtoXML.setParameter("versionParam", "2.0" );
   // Set the value of a <param> in the stylesheet
   _transformerXMLtoXML.setParameter("versionParam", "2.0" );
   
   // La source est le fichier xml
   InputStream input_l = new ByteArrayInputStream(xmlSource);
   Source src = new StreamSource(input_l);
   
   // Déclaration du resultat
   resultat = new StreamResult(out);
   
   // TODO: créer ici un objet qui fasse la relation entre le out et le resultat.
   _transformerXMLtoXML.transform(src, resultat);
  }
  catch (Exception e) {
   e.printStackTrace();
  }
  finally {
   if (out != null) {
    try {
     out.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
   return out;
  }
 }
 
Merci ++

n°1631813
brisssou
8-/
Posté le 26-10-2007 à 16:18:56  profilanswer
 

note pour plus tard : les balises [ code=java ] ... [ code ] , c'est le bien


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Recuperer le resultat d'une tranformation xslt dans un string

 

Sujets relatifs
[Delphi] fonction sur String [Résolu]Récupérer variable flash
Récuperer nom bouton feuille excelrécupérer la position d'un clip son connaitre son nom
recuperer une listeRecuperer fichiers sur forum oleoo
recuperer infos sur un site? (LEGAL)comment recuperer mot de passe
string vs string*pb formulaire html recuperer données avc perl/cgi ou c++
Plus de sujets relatifs à : Recuperer le resultat d'une tranformation xslt dans un string


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR