[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

select attribute of xsl:variable

Subject: select attribute of xsl:variable
From: pankaj.c@xxxxxxxxxxxxxxxxxx
Date: Wed, 1 Sep 2010 17:03:00 +0530
 select attribute of xsl:variable
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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.