This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: building hierarchy from path string


Jeni,

Wow, Jeni, thanks!

They say that the best programmers are at least ten times more 
productive than average. I believe it.

I made a slight modification to the stylesheet so that the numbers of 
characters per tier in the path can change. Unfortunately the it doesn't 
work. :p  I get complaints about the use of the variable $tierChars, but 
it looks legal to me. Any idea as to what I am doing wrong?

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
    <xsl:output method="text/xml" indent="yes" />
    <xsl:variable name="tierChars">
        <xsl:value-of select="/tree/descriptor/@chars-per-tier" />
    </xsl:variable>
    <xsl:key name="children" match="node" use="substring(@path, 1, 
@depth * $tierChars)" />
    <xsl:template match="tree/node-list">
        <tree>
            <xsl:apply-templates select="key('children','')" />
        </tree>
    </xsl:template>
    <xsl:template match="node">
        <node name="{@name}">
            <xsl:apply-templates select="key('children', 
substring(@path,1,(@depth + 1) * $tierChars))">
                <xsl:sort select="@path" />
            </xsl:apply-templates>
        </node>
    </xsl:template>
</xsl:stylesheet>

My XML input is as follows:

<tree>
   <descriptor chars-per-tier="2" depth="3" />
   <node-list>
       <node depth="0" OID="1" name="Animals" path="100000" />
       <node depth="1" OID="2" name="Reptile" path="102000" />
       <node depth="2" OID="5" name="Snake" path="102010" />
       <node depth="2" OID="6" name="Crock" path="102020" />
       <node depth="2" OID="7" name="Gator" path="102030" />
       <node depth="1" OID="3" name="Bird" path="103000" />
       <node depth="1" OID="4" name="Mamal" path="103000" />
   </node-list>
</tree>

Thanks again,

John-Mason
--
http://john-mason.shackelford.org


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]