This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Passing variable number of parameters to xsl file


Hunsberger, Peter wrote:
> The code would look something like the following, here I pull all the
> request parameters out of a Java servlet HTTP request and pass (non-blank)
> ones into Xalan as a single nodeset:
> 
> 
> 	static DocumentBuilderFactory _docFactory =
> DocumentBuilderFactory.newInstance();
> 		.
> 		.
> 		.
>       DocumentBuilder builder = _docFactory.newDocumentBuilder();
>       Document parmDoc = builder.newDocument();
> 	DocumentFragment root = parmDoc.createDocumentFragment();
>       for( Enumeration pr = request.getParameterNames();
> pr.hasMoreElements(); ) {                        
>       	String prn = (String)pr.nextElement();                          
>             String pv = request.getParameterValues( prn )[0];
>             if ( !"".equals( pv ) ) {
>            		Element parmE = parmDoc.createElement( prn );  
>                   Text parmV = parmDoc.createTextNode( pv );
>                   parmE.appendChild( parmV );
>                   root.appendChild( parmE );
>             }
>        }
>        transformer.setParameter( "request-parms", new
> org.apache.xpath.NodeSet( root ) );      
Btw, it's not a very portable solution, because each processor want 
nodeset param to be instance of some processor-specific class.
More portable, I believe, is to use URIResolver, which is more generic 
stuff and could be written without any processor-specific classes.

-- 
Oleg Tkachenko
Multiconn International, Israel


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]