XSLT : hierarchy recursive problem...help

poofpoof

Usenet Archive
Joined
Jul 29, 2004
Messages
5
Reaction score
0
Dear Experts,

I have some problems with XSLT recursivity...
here what I want to do

XML part :

<struct>
<node current="1" parent="0" level="1">A</node>
<node current="2" parent="1" level="2">AB</node>
<node current="3" parent="2" level="3">ABC</node>
<node current="4" parent="3" level="4">ABCD/node>
<node current="5" parent="0" level="1">B</node>
</struct>

HTML result :
<div id="A">
<div id="AB">
<div id="ABC">
<div id="ABCD">
</div>
</div>
</div>
</div>
<div id="B"></div>

I just want to imbricate nodes with "level" attributes or "parent" attributes. If anyone has samples of url or xsl code ...

thanks very much
 

Peter Gerstbach

Usenet Archive
Joined
Aug 11, 2004
Messages
13
Reaction score
0
poofpoof said:
Dear Experts,

I have some problems with XSLT recursivity...
here what I want to do

XML part :

<struct>
<node current="1" parent="0" level="1">A</node>
<node current="2" parent="1" level="2">AB</node>
<node current="3" parent="2" level="3">ABC</node>
<node current="4" parent="3" level="4">ABCD/node>
<node current="5" parent="0" level="1">B</node>
</struct>

HTML result :
<div id="A">
<div id="AB">
<div id="ABC">
<div id="ABCD">
</div>
</div>
</div>
</div>
<div id="B"></div>

I just want to imbricate nodes with "level" attributes or "parent" attributes. If anyone has samples of url or xsl code ...

thanks very much

try this:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:eek:utput method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/struct"> <html> <body> <xsl:apply-templates select="node[@level='1']"/> </body> </html> </xsl:template> <xsl:template match="node"> <xsl:element name="div"> <xsl:attribute name="id"><xsl:value-of select="text"/></xsl:attribute> <xsl:variable name="current" select="@current"/> <xsl:apply-templates select="//node[@parent=$current]"/> </xsl:element> </xsl:template> </xsl:stylesheet>

Peter
 

poofpoof

Usenet Archive
Joined
Jul 29, 2004
Messages
5
Reaction score
0
Peter Gerstbach a écrit :
poofpoof said:
Dear Experts,

I have some problems with XSLT recursivity... here what I want to do

XML part :

<struct>
<node current="1" parent="0" level="1">A</node>
<node current="2" parent="1" level="2">AB</node>
<node current="3" parent="2" level="3">ABC</node>
<node current="4" parent="3" level="4">ABCD/node>
<node current="5" parent="0" level="1">B</node>
</struct>

HTML result :
<div id="A">
<div id="AB">
<div id="ABC">
<div id="ABCD">
</div>
</div>
</div>
</div>
<div id="B"></div>

I just want to imbricate nodes with "level" attributes or "parent" attributes. If anyone has samples of url or xsl code ...
thanks very much

try this:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:eek:utput method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/struct"> <html> <body> <xsl:apply-templates select="node[@level='1']"/> </body> </html> </xsl:template> <xsl:template match="node"> <xsl:element name="div"> <xsl:attribute name="id"><xsl:value-of select="text"/></xsl:attribute> <xsl:variable name="current" select="@current"/> <xsl:apply-templates select="//node[@parent=$current]"/> </xsl:element> </xsl:template> </xsl:stylesheet>

Peter

whaou! that's work!
I thank you very infinitely Peter! ;)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
548,208
Messages
3,104,802
Members
249,594
Latest member
henrywalsh

Latest Threads

Top