xsl-list
[Top] [All Lists]

Re: Printing ancestor elements of all element nodes

2005-08-03 20:34:00
Thanks Mike..

Regards,
Mukul

On 8/3/05, Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
<xsl:template match="*" mode="print-ancestors">
 <xsl:value-of select="concat(name(), ',')"/>
 <xsl:apply-templates select=".." mode="print-ancestors"/>
</xsl:template>

<xsl:template match="/" mode="print-ancestors">root</xsl:template>

<xsl:template match="/">
 <xsl:for-each select="//*">
   <xsl:value-of select="name()"/>
   <xsl:text> - </xsl:text>
   <xsl:apply-templates select=".." mode="print-ancestors"/>
   <xsl:text>&#xa;</xsl:text>
 </xsl:for-each>
</xsl:template>

Michael Kay
http://www.saxonica.com/

-----Original Message-----
From: Mukul Gandhi [mailto:gandhi(_dot_)mukul(_at_)gmail(_dot_)com]
Sent: 03 August 2005 12:04
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Printing ancestor elements of all element nodes

I have this XML document -

<root>
  <a>
    <b>
       <c/>
       <d/>
       <e>
          <f>
            <g/>
            <h/>
          </f>
       </e>
    </b>
  </a>
</root>

The following output is desired -
root -
a - root
b - a,root
c - b,a,root
d - b,a,root
e - b,a,root
f - e,b,a,root
g - f,e,b,a,root
h - f,e,b,a,root

How to do this with XSLT?

I'll be testing this with both Xalan-J 2.6.0 and Saxon 8.4. I need a
XSLT 1.0 solution.

Regards,
Mukul

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--