From: LAMY Olivier (LAMY_Olivier@accor-hotels.com)
Date: 02/05/2002 - 08:13
Pour information, il existe aussi Saxon et XY qui fonctionnent aussi très
bien (voir (1) et (2))
Comme tu utilises JAXP, tu peux utiliser l'un ou l'autre de ces processeurs
et tester les performances en modifiant la propriété système nommé
javax.xml.parsers.DocumentBuilderFactory avant l'obtention du transformer
par :
TransformerFactory tFactory = TransformerFactory.newInstance();
Tu places simplement avant un :
String property =
System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
nom du processeur);
Pour xalan, org.apache.xalan.processor.TransformerFactoryImpl
Pour Saxon, com.icl.saxon.TransformerFactoryImpl
(1) http://www.xmlblaster.org/XSL_performance.html
(2) http://www.biglist.com/lists/xsl-list/archives/200001/msg00111.html
----- Original Message -----
From: <noel.jean-baptiste@courrier.uqam.ca>
To: <xml-tech@xmlfr.org>
Sent: Tuesday, April 30, 2002 10:28 PM
Subject: [xml-tech] Re: XSL et JAVA
Si t'as question est peut-on utiliser des feuilles de styles depuis une
classe java ? Alors la réponse est oui.
J'utilise le processeur Xalan, disponible sur Apache.
Exemple :
//Servlets
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.URL;
//Le parseur
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
//Transformation XSLT : XML + XSL
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
// Classe qui affiche la page Web du formulaire d'un étudiant selon son
programme
// appelé par TraiterOptionProgramme
public class AfficherUnEtudiant {
// Variable statique du document XML
public static String nomFichier;
public static void afficherUn( HttpServletRequest request,
HttpServletResponse response )
throws ServletException, IOException,
java.net.MalformedURLException
{
// The servlet returns HTML.
//response.setContentType("text/html; charset=UTF-8");
response.setContentType("text/html; charset=ISO-8859-1");
// Output goes in the response stream.
PrintWriter out = response.getWriter();
//listeEtudiant est le nom de la zone de selection. nomFichier
récupère le code permanent(taille 12)
//concaténer avec xml
nomFichier = request.getParameter( "listeEtudiants" ).toString
().substring( 0, 12 ) + ".xml";
try
{
//out.println("Resultat Xalan");
TransformerFactory tFactory = TransformerFactory.newInstance();
//Appel du fichier XML contenant les noms des programmes
Source xmlSource = new StreamSource(new URL(fichierXML).openStream
());
//Appel du fichier XSL pour la mise en forme
Source xslSource = new StreamSource(new URL(fichierXSL).openStream
());
// Generate the transformer.
Transformer transformer = tFactory.newTransformer(xslSource);
// Perform the transformation, sending the output to the response.
transformer.transform(xmlSource, new StreamResult(out));
}
catch (Exception e)
{
out.write(e.getMessage());
e.printStackTrace(out);
}
out.close();
}
}
j'éspére que cela t'auras aidé.
Djibi
---- Messages d´origine ----
De: Le Gac Frédéric <legacf@yahoo.fr>
Date: mardi 30 avril 2002 15:08
Objet: [xml-tech] XSL et JAVA
>
> Bonjour à tous,
>
> Existe-t-il une méthode pour utiliser XSL dans un
> programmeJAVA (par exemple en utilisant une classe prévue à cet
> effet).
> Merci à tous.
>
> Frédéric Le Gac.
>
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
>
> Cette liste est a votre disposition pour discuter en francais de
> tout sujet technique lie a XML.
>
> Pour resilier votre abonnement, envoyez un message contenant
> la commande "unsubscribe" a xml-tech-request@xmlfr.org
> (mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
>
>
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
**********************************************************************
Ce message électronique et tous les fichiers joints ainsi que les
informations contenues dans ce message ( ci après "le message" ), sont
confidentiels et destinés exclusivement à l'usage de la personne à laquelle
ils sont adressés. Si vous avez reçu ce message par erreur, merci de le
renvoyer à son émetteur et de le détruire. Toute diffusion, publication,
totale ou partielle ou divulgation sous quelque forme que se soit non
expressément autorisées de ce message, sont interdites.
**********************************************************************
This e-mail, any attachments and the information contained (herein " the
message" ) are confidential and intended solely for the use of the
addressee(s) if you have received this message in error please send it back
to the sender and delete it. Unauthorized publication, use, dissemination or
disclosure, either whole or partial, of this message is strictly
prohibited.
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|