[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Setting name attribute of <xsl:attribute>
Perhaps you are calling your template with, say <xsl:with-param name="attributeName" select="code"/> rather than <xsl:with-param name="attributeName" select="'code'"/> I would think that a better solution is to pass the attribute node as a parameter, rather than passing its name and value. Your template then becomes: <xsl:template name="copy-att" <xsl:param name="attNode"/> <xsl:if test="string(.)"> <xsl:copy/> </xsl:if> </xsl:template> and the calling code becomes, for example <xsl:call-template name="copy-att"> <xsl:with-param name="attNode" select="@code"/> </ Michael Kay > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of > Witham, Darren (Contractor) > Sent: 10 October 2003 12:50 > To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx > Subject: Setting name attribute of <xsl:attribute> > > > > Hi, > > I have what I hope is an easy issue to solve but my varying > attempts to do so have not been successful. I have an xsl > stylesheet which transforms some xml into another xml format. > I only wish to generate XML in the output xml file if > attributes in the src xml exist. At present I have a number > of <xsl:if test......> directives to check if an attribute is > present before processing. > I would like to remove the need for the <xsl:if test......> > and want to call a template to do the check and process if > need be..... > > My template is > > <!-- > Helper template that only pushes out out XML if value > of attribute to publish is not null > --> > <xsl:template name="checkAttributeNotNull"> > <xsl:param name="attributeName"/> > <xsl:param name="attributeValue"/> > <xsl:if test="$attributeValue"> > <xsl:attribute name="{$attributeName}"> > <xsl:value-of select="$attributeValue" /> > </xsl:attribute> > </xsl:if> > </xsl:template> > > And I call if via : > > > <xsl:call-template name="checkAttributeNotNull"> > <xsl:with-param name="attributeName" select="anAttName"/> > <xsl:with-param name="attributeValue" > select="anAttValue"/> </xsl:call-template> > > The problem I have is within the template I call. I cannot > seem to set the name of the attribute I am trying to create > with the parameter 'attributeName'. ( i.e with <xsl:attribute > name="{$attributeName}">) I have tried all sorts of > combinations except for the correct one. I thought I could > set this value at runtime ????? > > Any pointers appreciated. > > Thx > > > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
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
|