RE: [xsl] XML transformation based on parameters

Subject: RE: [xsl] XML transformation based on parameters
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 16 Apr 2009 11:03:06 +0100
I would suggest that you ask about this on a Xalan-specific list. The types
of object that are accepted as external parameters depend on the processor.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Emiliano Pecis [mailto:emiliano.pecis@xxxxxxxxx] 
> Sent: 16 April 2009 10:40
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] XML transformation based on parameters
> 
> > If your code isn't working and you want to know why, it's 
> usually best 
> > to show us your code.
> >
> 
> Thanks! It's here:
> 
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> xmlns:qp="http://epecis/queryparams";
> xmlns:xalan="http://xml.apache.org/xalan";
> exclude-result-prefixes="xalan">
> 
>  <xsl:param name="params" />
> 
>  <xsl:template match="@* | node()">
>   <xsl:copy>
>     <xsl:apply-templates select="@* | node()"/>
>   </xsl:copy>
>  </xsl:template>
> 
>  <xsl:template match="*[local-name()='param']">
> 
>   <xsl:choose>
>     <xsl:when test="@name = 
> xalan:nodeset($params)/query-params/param/@name">
>       <xsl:value-of
> select="xalan:nodeset($params)/query-params/param[@name=curren
> t()/@name]/@value"/>
>     </xsl:when>
>     <xsl:otherwise>
>       <xsl:value-of select="."/>
>     </xsl:otherwise>
>   </xsl:choose>
> 
>  </xsl:template>
> 
> </xsl:stylesheet>
> 
> ------------
> 
> Tried with and without xalan:nodeset extension. The result is the
> same: It fails with the following exception:
> 
> java.lang.RuntimeException: Invalid conversion from node-set' 
> a 'org.apache.xmlbeans.impl.store.Xobj$DocumentXobj.
> 	at 
> com.sun.org.apache.xalan.internal.xsltc.runtime.BasisLibrary.r
> unTimeError(BasisLibrary.java:1496)
> 	at 
> com.sun.org.apache.xalan.internal.xsltc.runtime.BasisLibrary.r
> unTimeError(BasisLibrary.java:1504)
> 	at 
> com.sun.org.apache.xalan.internal.xsltc.runtime.BasisLibrary.n
> odesetF(BasisLibrary.java:499)
> 	at EmbedParametersFromUri.template$dot$1()
> 	at EmbedParametersFromUri.applyTemplates()
> 	at EmbedParametersFromUri.template$dot$0()
> 	at EmbedParametersFromUri.applyTemplates()
> 	at EmbedParametersFromUri.template$dot$0()
> 	at EmbedParametersFromUri.applyTemplates()
> 	at EmbedParametersFromUri.template$dot$0()
> 	at EmbedParametersFromUri.applyTemplates()
> 	at EmbedParametersFromUri.template$dot$0()
> 	at EmbedParametersFromUri.applyTemplates()
> 	at EmbedParametersFromUri.applyTemplates()
> 	at EmbedParametersFromUri.transform()
> 	at 
> com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTransl
> et.transform(AbstractTranslet.java:602)
> 	at 
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.t
> ransform(TransformerImpl.java:710)
> 	at 
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.t
> ransform(TransformerImpl.java:313)
> 	at 
> com.bea.wli.sb.resources.xslt.XsltExecutor.execute(XsltExecuto
> r.java:153)

Current Thread