[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Passing variable number of parameters to xsl file


Subject: Re: [xsl] Passing variable number of parameters to xsl file
From: Oleg Tkachenko <olegt@xxxxxxxxxxxxx>
Date: Thu, 21 Mar 2002 18:56:14 +0200

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




Current Thread