RE: [xsl] Recursive?

Subject: RE: [xsl] Recursive?
From: "Aron Bock" <aronbock@xxxxxxxxxxx>
Date: Thu, 17 Mar 2005 14:31:59 +0000
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.waibel@xxxxxxxx>
Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
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


Current Thread