Subject: [xsl] select attribute of xsl:variable From: pankaj.c@xxxxxxxxxxxxxxxxxx Date: Wed, 1 Sep 2010 17:03:00 +0530 |
Hello all, I have a piece of an XML, looks like below. I am trying to add an attribute to the matching element to corresponding @role value defined in the variable. The first case seems to be working well but secondly one fails and it looks that conditional check with @select attribute (select="parent::textbox-body/parent::textbox[@role]") in variable is failing. Can't we condition checks with ancestors/parent values in child elements. I also tried defining it as global variable <xsl:variable name="role_title" select="textbox[@role]"/> but too doesn't seems to be working. Can somebody guide me where I am wrong. I am using 1.0 xsltproc. TIA, Pankaj XML ==== <textbox id="b0030" role="alt1"> <textbox-head> <title>XXXXXXXXXXXXXX</title> </textbox-head> </textbox> Case 1 ========== <xsl:template match="display/textbox"> <xsl:variable name="role_title" select="@role"/> <xsl:variable name="boxtype"> <xsl:choose> <xsl:when test="$role_title = 'alt1'">TE A title</xsl:when> <xsl:when test="$role_title = 'alt2'">TE B title</xsl:when> <xsl:when test="$role_title = 'alt3'">TE C title</xsl:when> <xsl:when test="$role_title = 'alt4'">TE D title</xsl:when> <xsl:when test="$role_title = 'alt5'">TE E title</xsl:when> <xsl:when test="$role_title = 'alt6'">TE F title</xsl:when> <xsl:when test="$role_title = 'alt7'">TE G title</xsl:when> <xsl:when test="$role_title = 'alt8'">TE H title</xsl:when> <xsl:when test="$role_title = 'alt9'">TE I title</xsl:when> <xsl:when test="$role_title = 'alt1'">TE J title</xsl:when> </xsl:choose> </xsl:variable> <xsl:copy> <xsl:attribute name="aid:pstyle"><xsl:value-of select="$boxtype"/></xsl:attribute> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template> Case 2 ========= <xsl:template match="display/textbox/textbox-head/title"> <xsl:variable name="role_title" select="parent::textbox-body/parent::textbox[@role]"/> <xsl:variable name="boxtype"> <xsl:choose> <xsl:when test="$role_title = 'alt1'">TE A title</xsl:when> <xsl:when test="$role_title = 'alt2'">TE B title</xsl:when> <xsl:when test="$role_title = 'alt3'">TE C title</xsl:when> <xsl:when test="$role_title = 'alt4'">TE D title</xsl:when> <xsl:when test="$role_title = 'alt5'">TE E title</xsl:when> <xsl:when test="$role_title = 'alt6'">TE F title</xsl:when> <xsl:when test="$role_title = 'alt7'">TE G title</xsl:when> <xsl:when test="$role_title = 'alt8'">TE H title</xsl:when> <xsl:when test="$role_title = 'alt9'">TE I title</xsl:when> <xsl:when test="$role_title = 'alt1'">TE J title</xsl:when> </xsl:choose> </xsl:variable> <xsl:copy> <xsl:attribute name="aid:pstyle"><xsl:value-of select="$boxtype"/></xsl:attribute> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSL-List Guidelines, Mulberry Technologie | Thread | Re: [xsl] select attribute of xsl:v, Martin Honnen |
[xsl] XSL-List Guidelines, Mulberry Technologie | Date | Re: [xsl] select attribute of xsl:v, Martin Honnen |
Month |