/***** Code de MesExemples.com *******/
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.util.*;import org.w3c.dom.*;import javax.xml.transform.*;import javax.xml.transform.dom.*;import javax.xml.transform.stream.*;import javax.xml.parsers.*;public class XsltDomServlet extends HttpServlet { private DOMImplementation dom; private Transformer transformer; public void init () throws ServletException { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder db = dbf.newDocumentBuilder(); dom = db.getDOMImplementation(); } catch (ParserConfigurationException pce) { throw new ServletException (pce); } // prepare the XSLT transformer TransformerFactory tf = TransformerFactory.newInstance(); StreamSource ss = new StreamSource("/var/www/stylesheets/paramTable.xslt"); try { transformer = tf.newTransformer (ss); } catch (TransformerConfigurationException tce) { throw new ServletException (tce); } } public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { } public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { Document doc = dom.createDocument("","parameters",null); Element parameters = doc.getDocumentElement(); parameters.setAttribute ("title", "XSLT DOM Servlet"); Enumeration parameterNames = request.getParameterNames(); while (parameterNames.hasMoreElements ()) { String parameterName = parameterNames.nextElement().toString(); Element parameter = doc.createElement ("parameter"); parameters.appendChild (parameter); parameter.setAttribute ("name", parameterName); parameter.appendChild (doc.createTextNode (request.getParameter(parameterName))); } DOMSource domSource = new DOMSource (doc); StreamResult streamResult = new StreamResult (response.getWriter()); try { transformer.transform (domSource, streamResult); } catch (TransformerException te) { throw new ServletException (te); } }}
Code testé avec le fichier XML Suivant
Sakoba
Adams
Rappel
Ne m'oubliez pas ce week-end!