RE: [xsl] How to find parent

Subject: RE: [xsl] How to find parent
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Thu, 5 Aug 2004 08:44:45 +0100
You can test whether the parent is an fo:block-container by
test="parent::fo:block-container".

Much better, however to use template rules. Replace your whole code with

<xsl:apply-templates select=".//fo:block"/>

<xsl:template match="fo:block-container/fo:block">
<ABC>
DO SOMETHING
</ABC>
</xsl:template>

<xsl:template match="fo:block">
<ABC>
DO SOMETHING ELSE
</ABC>
</xsl:template>

Michael Kay

> -----Original Message-----
> From: Manpreet Singh [mailto:singhm@xxxxxxxxxxx] 
> Sent: 05 August 2004 07:58
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] How to find parent
> Importance: High
> 
> hi,
>  
> 			<xsl:for-each select=".//fo:block">
> 				<ABC>
> 					<xsl:choose>
> 						<xsl:when
> test="..=fo:block-container">     ------Something wrong here. 
> I am looking
> for the parent of fo:block. If it is fo:block-container then 
> do something,
> else do something else
> 							<!--DO 
> SOMETHING-->
> 						</xsl:when>
> 						<xsl:otherwise>
> 							<!--DO SOMETHING
> ELSE-->							
> 						</xsl:otherwise>
> 					</xsl:choose>
> 				</ABC>
> 			</xsl:for-each>
> 
> Regards 
> Manpreet

Current Thread