[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: How to declare a param which name is in a XML file?
José Manuel Beas wrote: > > I have a XML file with a parameter definition zone. > > <parameters> > <param ident="param1"> > <param ident="param2"> > </parameters> > > And i want to apply a XSLT file to this XML file > > XSLT File > > <xsl:template match="parameters"> > <xsl:for-each select="param"> > <xsl:param name="@ident"/> > </xsl:for-each> > </xsl:template> > > But when XSLT-parser(SAXON) processes it, shows this error: > > "Name @ident contains invalid characters" > > How should i solve this problem?? The name attribute of xsl:param must be a QName (see http://www.w3.org/TR/xslt#element-param ); specifically, the parameter name must be given literally in the XSLT source, and can't be specified with an expression. I'm pretty sure there's no way to define XSLT parameters or variables whose names are defined in the XML source document (the file being transformed). If you're going to provide parameter values in an XML file, you can probably create one XSLT parameter or variable whose value is a nodeset that is the content (children) of the "parameters" element (something like <xsl:variable name="params" select=".../param" />), and then can extract specific values with something like $var[@ident="param1"]. If you really want to map your given XML to XSLT parameters, I think you'd have to transform the given XML into an XSLT stylesheet with a second XSLT stylesheet. Daniel -- Daniel Barclay Digital Focus Daniel.Barclay@d...
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|