Subject: Re: traversing up nodes until a certain attribute, then back to current node
From: xslt user <xsltacct@xxxxxxxxx>
Date: Wed, 28 Mar 2007 06:24:40 -0700 (PDT)
|
thanks for the help works great!
--- David Carlisle <davidc@xxxxxxxxx> wrote:
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:template match="*">
> <xsl:param name="x"/>
> <xsl:text>
</xsl:text>
> <xsl:choose>
> <xsl:when test="$x">
> <xsl:variable name="nx" select="concat($x,'
> ',name())"/>
> <xsl:value-of select="$nx"/>
> <xsl:apply-templates select="*">
> <xsl:with-param name="x" select="$nx"/>
> </xsl:apply-templates>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="name()"/>
> <xsl:apply-templates select="*"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
>
> <xsl:template match="*[@id]">
> <xsl:text>
</xsl:text>
> <xsl:value-of select="@id"/>
> <xsl:apply-templates select="*">
> <xsl:with-param name="x" select="@id"/>
> </xsl:apply-templates>
> </xsl:template>
>
> </xsl:stylesheet>
>
>
> $ saxon id1.xml id1.xsl
> <?xml version="1.0" encoding="utf-8"?>
> root
> zero
> a
> a two
> c
> d
> d five
> d five six
> d five six seven
>
>
> David
>
>
____________________________________________________________________________________
Get your own web address.
Have a HUGE year through Yahoo! Small Business.
http://smallbusiness.yahoo.com/domains/?p=BESTDEAL
|