Subject: RE: checking for a node in the ancestor axis
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Wed, 22 Oct 2003 08:34:45 +0100
|
Why not use a boolean variable? Instead of
<xsl:variable name="CtrlExists">
<xsl:choose>
<xsl:when test="_Ctrl">
<xsl:value-of select="'1'"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'0'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
write
<xsl:variable name="CtrlExists" select="boolean(_Ctrl)"/>
Having said that, I can't see at first glance why your code isn't
working.
Michael Kay
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> Murali Korrapati
> Sent: 22 October 2003 02:24
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: checking for a node in the ancestor axis
>
>
> Hi,
>
> I have a situation here, where I have to check for the
> node in the ancestor axis. I tried setting a flag depending
> upon _Ctrl node into a xsl:variable and checking
> for that variable later. But it doesn't seem like working.
>
> <xsl:if test="$CtrlExists='1'"> in the following code
> is always turning out false
>
> But I can't do <xsl:if test="../../_Ctrl">, b'cos my xml
> inside <Rpt_Inven> varies all the time.
>
> I am sure there is a better way to do this. But I couldn't
> get to it. Is there any proper way to do this.
>
> Thanks a lot.
>
> my xml:
> <data xmlns="urn:abcd:layers">
> <Rpt_Inven xmlns="urn:abcd:RepInven">
> <Invens>
> <Inven>
> <Entity>Ent1</Entity>
> </Inven>
> <Inven>
> <Entity>Ent2</Entity>
> </Inven>
> <Inven>
> <Entity>Ent3</Entity>
> </Inven>
> </Invens>
> </Rpt_Inven>
> <!-- This node is optional. Doesn't exists all the time -->
> <_Ctrl xmlns="" xmlns:lay="urn:abcd:layers"
> xmlns:rep="urn:abcd:RepInven" xmlns:obj="urn:abcd:objects">
> <_Table>
> <_Col name="Entity"/>
> </_Table>
> </_Ctrl>
> </data>
>
> my xsl:
>
> <xsl:stylesheet version="1.0" xmlns=""
> xmlns:lay="urn:abcd:layers" xmlns:rep="urn:abcd:RepInven"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="xml" encoding="UTF-8"/>
> <xsl:template match="lay:data">
> <xsl:variable name="CtrlExists">
> <xsl:choose>
> <xsl:when test="_Ctrl">
> <xsl:value-of select="'1'"/>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="'0'"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
> <_Ctrl>
> <xsl:for-each select="rep:Rpt_Inven/rep:Invens">
> <_Table>
> <_Col name="Entity">
> <xsl:if
> test="$CtrlExists='1'">
>
> <xsl:for-each select="rep:Inven/rep:Entity">
>
> <xsl:sort select="."/>
> <_Item>
>
> <xsl:value-of select="."/>
> </_Item>
> </xsl:for-each>
> </xsl:if>
> </_Col>
> </_Table>
> </xsl:for-each>
> </_Ctrl>
> </xsl:template>
> </xsl:stylesheet>
>
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|