[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Printing ancestor elements of all element nodes


Subject: Re: [xsl] Printing ancestor elements of all element nodes
From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Date: Wed, 3 Aug 2005 17:02:55 +0530

Thank you David! This is marvellous..  My attempt was -

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="text" />

    <xsl:template match="/">
       <xsl:for-each select="//*">
          Element name <xsl:value-of select="name()"
/><xsl:text>&#xa;</xsl:text>
          Ancestor elements of this element
          <xsl:text>&#xa;</xsl:text>
          <xsl:text>&#xa;</xsl:text>
          <xsl:call-template name="printAncestors">
              <xsl:with-param name="node" select="." />
          </xsl:call-template>
       </xsl:for-each>
    </xsl:template>

    <xsl:template name="printAncestors">
       <xsl:param name="node" />

       <xsl:choose>
			<xsl:when test="$node/parent::*">
                <xsl:value-of select="name($node)" />,
                <xsl:call-template name="printAncestors">
                   <xsl:with-param name="node"
select="$node/ancestor::*"/>
                </xsl:call-template>
			</xsl:when>
			<xsl:otherwise>
               <xsl:value-of select="name($node)" />,
			</xsl:otherwise>
	   </xsl:choose>
    </xsl:template>

</xsl:stylesheet>

But this did'nt work.. ;)

THANK YOU.

Regards,
Mukul

On 8/3/05, David Carlisle <davidc@xxxxxxxxx> wrote:
>
> <xsl:for-each select="//*">
>  <xsl:text>&#10;</xsl:text>
>  <xsl:value-of select="name()"/>
>  <xsl:text> - </xsl:text>
>  <xsl:for-each select="ancestor::*">
>  <xsl:sort select="-count(ancestor::*)"/>
>  <xsl:value-of select="name()"/>
>  <xsl:if tets="position()!=last()">,</xsl:if>
>  </xsl:for-each>
>  </xsl:for-each>
>
> ________________________________________________________________________
> This e-mail has been scanned for all viruses by Star. The
> service is powered by MessageLabs. For more information on a proactive
> anti-virus service working around the clock, around the globe, visit:
> http://www.star.net.uk
> ________________________________________________________________________


Current Thread