xsl-list
[Top] [All Lists]

Re: [xsl] traversing up nodes until a certain attribute, then back to current node

2007-03-28 06:24:55

thanks for the help works great!


--- David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk> 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="*[(_at_)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


--~------------------------------------------------------------------
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>
--~--





 
____________________________________________________________________________________
Get your own web address.  
Have a HUGE year through Yahoo! Small Business.
http://smallbusiness.yahoo.com/domains/?p=BESTDEAL

--~------------------------------------------------------------------
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>
--~--