Re: [xsl] Backward Navigation Problem

Subject: Re: [xsl] Backward Navigation Problem
From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Date: Mon, 2 Nov 2009 15:40:36 +0530
Hi Anil,
  if you are doing, <xsl:for-each select="employee">

then to reach to the TABLE node, you need to do as following:
../../TABLE

it seems, you are having trouble determining the context node.

On Mon, Nov 2, 2009 at 3:00 PM, Anil Kumar Veeramalli
<anil.v@xxxxxxxxxxxxxxxxxxxxx> wrote:
> Hi,
>
> My sample XML file lok lilke this
> <root>
> <employees>
> B <employee hireDate="04/23/1999">
> B  <COLUMN NAME="LAST">Hilllfrist</COLUMN> B  B  <COLUMN
> NAME="STATUS"><![CDATA[A]]></COLUMN>
> B </employee>
> B <employee hireDate="05/23/1999">
> B  <COLUMN NAME="LAST">raj</COLUMN> B  B  <COLUMN
> NAME="STATUS"><![CDATA[T]]></COLUMN>
> B </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 B 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">
> B <xsl:for-each select="employees">
> B  <xsl:for-each select="employee">
> B  <xsl:if test="@NAME='STATUS'">
> B  B  B  <xsl:variable name="status" select="."/> B  B  B  B  B  B  B  B 
<xsl:for-each
>
select="TABLE[@NAME='XLATTABLE_EMPL_STATUS']/ROWS/ROW/COLUMN[@NAME='STATUS']"
>
> B  B  B  B  B  B  B  <xsl:value-of
>
select="TABLE[@NAME='XLATTABLE_EMPL_STATUS']/ROWS/ROW/COLUMN[@NAME='DESCR']"
> B  B  B  </xsl:for-each>
>
> B  </xsl:if>
>
> B  </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)
B ../TABLE[@NAME='XLATTABLE_EMPL_STATUS']/ROWS/ROW/COLUMN[@NAME='STATUS']"
> 2)
>
parent::node()/TABLE[@NAME='XLATTABLE_EMPL_STATUS']/ROWS/ROW/COLUMN[@NAME='DE
SCR']
>
> Please suggest me on this.
>
>
> Thanks,
> Anil


--
Regards,
Mukul Gandhi

Current Thread