[xsl] Backward Navigation Problem

Subject: [xsl] Backward Navigation Problem
From: Anil Kumar Veeramalli <anil.v@xxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 02 Nov 2009 15:00:15 +0530
Hi,

My sample XML file lok lilke this
<root>
<employees>
<employee hireDate="04/23/1999">
<COLUMN NAME="LAST">Hilllfrist</COLUMN> <COLUMN NAME="STATUS"><![CDATA[A]]></COLUMN>
</employee>
<employee hireDate="05/23/1999">
<COLUMN NAME="LAST">raj</COLUMN> <COLUMN NAME="STATUS"><![CDATA[T]]></COLUMN>
</employee>
</employees>
<TABLE NAME="XLATTABLE_EMPL_STATUS">
<ROWS>
<ROW>
<COLUMN NAME="STATUS"><![CDATA[T]]></COLUMN>
<COLUMN NAME="DESCR"><![CDATA[Terminated]]></COLUMN>
</ROW>
<ROW>
<COLUMN NAME="STATUS"><![CDATA[A]]></COLUMN>
<COLUMN NAME="DESCR"><![CDATA[Active]]></COLUMN>
</ROW>
<ROW>
</TABLE >
</root>


I need to Iterate all the Status values and need to fetch the description from XLATTABLE_EMPL_STATUS.

Example if the status is A, it has to be displayed as Active, if its T , it has to be displayed as Terminated.

My xsl code is as below.

xsl:template match="root">
<xsl:for-each select="employees">
<xsl:for-each select="employee">
<xsl:if test="@NAME='STATUS'">
<xsl:variable name="status" select="."/> <xsl:for-each select="TABLE[@NAME='XLATTABLE_EMPL_STATUS']/ROWS/ROW/COLUMN[@NAME='STATUS']">
<xsl:value-of select="TABLE[@NAME='XLATTABLE_EMPL_STATUS']/ROWS/ROW/COLUMN[@NAME='DESCR']"
</xsl:for-each>


</xsl:if>

   </xsl:for-each>
</xsl:for-each>
</xsl:template>

looks like TABLE[@NAME='XLATTABLE_EMPL_STATUS']/ROWS/ROW/COLUMN[@NAME='STATUS']" is not working.

Approaches I followed.
1) ../TABLE[@NAME='XLATTABLE_EMPL_STATUS']/ROWS/ROW/COLUMN[@NAME='STATUS']"
2) parent::node()/TABLE[@NAME='XLATTABLE_EMPL_STATUS']/ROWS/ROW/COLUMN[@NAME='DESCR']


Please suggest me on this.


Thanks, Anil

Current Thread