You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xalan.apache.org by Ji...@mortgage.wellsFargo.COM on 2002/08/06 17:28:36 UTC

Passing arguments into a stylesheet programmatically...

Hello,
 
I am using a servlet to pass an XML document through multiple XSL
transforms. I am using the chaining method that is described in the
Pipes.java example.
 
I would like to pass servlet request parameters into the style sheet as
style sheet parameters. I am getting the Transformer from the
TransformerHandler and setting the parameters on that. Unfortunately, the
parameters are not getting passed into the style sheet. 
 
Should this work?
 
Here is the code:
 
        if (i.hasNext()) {
            xslName = (String) i.next();
            log4jCategory.debug("xsl name: "+xslName);
            th =
((SAXTransformerFactory)transformerFactory).newTransformerHandler(XSLManager
.getInstance().getXSLTransformer(xslName));
            firstOne = th;
            while (i.hasNext()) {
                xslName = (String) i.next();
                log4jCategory.debug("xsl name: "+xslName);
                th2 =
((SAXTransformerFactory)transformerFactory).newTransformerHandler(XSLManager
.getInstance().getXSLTransformer(xslName));
                th.setResult(new SAXResult(th2));
                parameterIterator = parameterList.iterator();
                
                // pass the "xsl-paramN" parameters into each
transformation...
                while (parameterIterator.hasNext()) {
                  parameter = (String)parameterIterator.next();
                  th.getTransformer().setParameter(parameter,
request.getParameter(parameter));
                }
                th = th2;
            }
        }
      Serializer serializer = SerializerFactory.getSerializer
 
(OutputProperties.getDefaultMethodProperties("xml"));        
      serializer.setOutputStream(response.getOutputStream());
      th.setResult(new SAXResult(serializer.asContentHandler()));
      
      doTransform(firstOne, request);
 
 
Cheers,
Jim.
 
James J. Majure
Systems Architect
Wells Fargo Services Company
515.213.4870
 

RE: Passing arguments into a stylesheet programmatically...

Posted by Gary L Peskin <ga...@firstech.com>.
Are you receiving these parameters into your stylesheet using an
xsl:param element at the top level?

Gary
-----Original Message-----
From: Jim.Majure@mortgage.wellsFargo.COM
[mailto:Jim.Majure@mortgage.wellsFargo.COM] 
Sent: Tuesday, August 06, 2002 8:29 AM
To: xalan-j-users@xml.apache.org
Subject: Passing arguments into a stylesheet programmatically...


Hello,
 
I am using a servlet to pass an XML document through multiple XSL
transforms. I am using the chaining method that is described in the
Pipes.java example.
 
I would like to pass servlet request parameters into the style sheet as
style sheet parameters. I am getting the Transformer from the
TransformerHandler and setting the parameters on that. Unfortunately,
the parameters are not getting passed into the style sheet. 
 
Should this work?
 
Here is the code:
 
        if (i.hasNext()) {
            xslName = (String) i.next();
            log4jCategory.debug("xsl name: "+xslName);
            th =
((SAXTransformerFactory)transformerFactory).newTransformerHandler(XSLMan
ager.getInstance().getXSLTransformer(xslName));
            firstOne = th;
            while (i.hasNext()) {
                xslName = (String) i.next();
                log4jCategory.debug("xsl name: "+xslName);
                th2 =
((SAXTransformerFactory)transformerFactory).newTransformerHandler(XSLMan
ager.getInstance().getXSLTransformer(xslName));
                th.setResult(new SAXResult(th2));
                parameterIterator = parameterList.iterator();
                
                // pass the "xsl-paramN" parameters into each
transformation...
                while (parameterIterator.hasNext()) {
                  parameter = (String)parameterIterator.next();
                  th.getTransformer().setParameter(parameter,
request.getParameter(parameter));
                }
                th = th2;
            }
        }
      Serializer serializer = SerializerFactory.getSerializer
 
(OutputProperties.getDefaultMethodProperties("xml"));        
      serializer.setOutputStream(response.getOutputStream());
      th.setResult(new SAXResult(serializer.asContentHandler()));
      
      doTransform(firstOne, request);
 
 
Cheers,
Jim.
 
James J. Majure
Systems Architect
Wells Fargo Services Company
515.213.4870