xsl-list
[Top] [All Lists]

RE: Recursive?

2005-03-17 07:31:59
Sven, the following proposes indent depth depending on number of "ancestors" of a tt or tc node.

It doesn't match your output exactly, in that your output sample doesn't show "tgf" and shows "2.1.2 test7" for "2.1.2 test6"...but for now I'm assuming them typos.

Regards,

--A

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
   <xsl:output method="text"/>

   <xsl:template match="tt|tc">
       <xsl:call-template name="indent">
           <xsl:with-param name="depth" select="count(ancestor::*) - 1"/>
           <xsl:with-param name="leadchar" select="'    '"/>
       </xsl:call-template>

       <xsl:value-of select="numbering"/>
       <xsl:text> </xsl:text>
       <xsl:value-of select="name"/>
       <xsl:text>&#xa;</xsl:text>

       <xsl:apply-templates/>
   </xsl:template>

   <xsl:template name="indent">
       <xsl:param name="depth" select="0"/>
       <xsl:param name="leadchar" select="' '"/>

       <xsl:if test="$depth &gt; 0">
           <xsl:value-of select="$leadchar"/>

           <xsl:call-template name="indent">
               <xsl:with-param name="depth" select="$depth - 1"/>
               <xsl:with-param name="leadchar" select="$leadchar"/>
           </xsl:call-template>
       </xsl:if>
   </xsl:template>

   <xsl:template match="text()">
       <xsl:apply-templates/>
   </xsl:template>

</xsl:stylesheet>






Waibel <sven(_dot_)waibel(_at_)imbus(_dot_)de>
Reply-To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Recursive?
Date: Thu, 17 Mar 2005 09:56:03 +0100

Hi everybody,

my xml:
<?xml version="1.0" encoding="ISO-8859-15"?>
<it>
        <tt id="20">
                <numbering>1</numbering>
                <name><![CDATA[test0]]></name>
                <tc id="4611686020000000015">
                        <numbering>1.1</numbering>
                        <name><![CDATA[test1]]></name>
                </tc>
        </tt>
        <tt id="21">
                <numbering>2</numbering>
                <name><![CDATA[test2]]></name>
                <tt id="22">
                        <numbering>2.1</numbering>
                        <name><![CDATA[test3]]></name>
                        <tt id="23">
                                <numbering>2.1.1</numbering>
                                <name><![CDATA[tgf]]></name>
                                <tc id="4611686020000000012">
                                        <numbering>2.1.1.1</numbering>
                                        <name><![CDATA[test4]]></name>
                                </tc>
                                <tc id="4611686020000000013">
                                        <numbering>2.1.1.2</numbering>
                                        <name><![CDATA[test5]]></name>
                                </tc>
                        </tt>
                        <tc id="4611686020000000014">
                                <numbering>2.1.2</numbering>
                                <name><![CDATA[test6]]></name>
                        </tc>
                </tt>
        </tt>
</it>

I want to get this:

number name

1 test0
  1.1 test1
2 test2
  2.1 test3
    2.1.1 test4
      2.1.1.1 test5
      2.1.1.2 test6
    2.1.2 test7

_________________________________________________________________
On the road to retirement? Check out MSN Life Events for advice on how to get there! http://lifeevents.msn.com/category.aspx?cid=Retirement


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



<Prev in Thread] Current Thread [Next in Thread>