Perhaps something like this could get you started:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/records">
<xsl:for-each select="record[keynum < -100]">
<record keynum="{keynum}">
<xsl:variable name="key1" select="keynum" />
<xsl:for-each select="../record[(keynum >= -50) and (keynum
<= 0) and (parentkeynum = $key1)]">
<xsl:variable name="key2" select="keynum" />
<record keynum="{keynum}">
<xsl:for-each select="../record[(keynum > 0) and
(parentkeynum = $key2)]">
<record keynum="{keynum}">
</record>
</xsl:for-each>
</record>
</xsl:for-each>
</record>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Regards,
Mukul
http://gandhimukul.tripod.com
On 7/22/06, Radoslav Kolarov <roonex(_at_)yahoo(_dot_)com> wrote:
Hi, I have this XML, and I want to make tree menu. The
roots elements of tree menu are the records with
keynum < -100, the children of the root elements are
records with keynum between -50 and 0 and
parentkeynum=keynum of the root, and the third level
of the tree menu are records with keynum > 0, and the
parentnumber shows the keynum of their parent. Please
help me.
XML file:
<?xml version="1.0" ?>
- <records>
- <record>
<keynum>-1</keynum>
<keyname>2 CLIENTS HAVE A NEGATIVE BALANCE</keyname>
<parentkeynum>-100000</parentkeynum>
<rowcnt>2</rowcnt>
<balance>0</balance>
</record>
- <record>
<keynum>35</keynum>
<keyname>35 MR. MICHAEL NOLAN</keyname>
<parentkeynum>-1</parentkeynum>
<rowcnt>1</rowcnt>
<balance>-275</balance>
</record>
- <record>
<keynum>142</keynum>
<keyname>142 MR. JOHN CALINSKI</keyname>
<parentkeynum>-1</parentkeynum>
<rowcnt>1</rowcnt>
<balance>-11</balance>
</record>
- <record>
<keynum>-3</keynum>
<keyname>42 CLIENTS CREDIT IS GREATER THAN
BALANCE</keyname>
<parentkeynum>-100000</parentkeynum>
<rowcnt>42</rowcnt>
<balance>0</balance>
</record>
- <record>
<keynum>18</keynum>
<keyname>18 MRS. LYNN BONIN</keyname>
<parentkeynum>-3</parentkeynum>
<rowcnt>1</rowcnt>
<balance>0</balance>
</record>
- <record>
<keynum>35</keynum>
<keyname>35 MR. MICHAEL NOLAN</keyname>
<parentkeynum>-3</parentkeynum>
<rowcnt>1</rowcnt>
<balance>-275</balance>
</record>
- <record>
<keynum>43</keynum>
<keyname>43 MR. JAMES D. NEFF</keyname>
<parentkeynum>-3</parentkeynum>
<rowcnt>1</rowcnt>
<balance>0</balance>
</record>
.................
.................
.................
- <record>
<keynum>10006</keynum>
<keyname>10006 MR. DALE SPONSEL 2003-04-24</keyname>
<parentkeynum>-16</parentkeynum>
<rowcnt>1</rowcnt>
<balance>0</balance>
</record>
- <record>
<keynum>-100003</keynum>
<keyname>APPOINTMENT ALERTS (1)</keyname>
<parentkeynum>0</parentkeynum>
<rowcnt>1</rowcnt>
<balance>0</balance>
</record>
- <record>
<keynum>-100002</keynum>
<keyname>HAIR SYSTEM ALERTS (2)</keyname>
<parentkeynum>0</parentkeynum>
<rowcnt>2</rowcnt>
<balance>0</balance>
</record>
- <record>
<keynum>-100001</keynum>
<keyname>PROGRAM ALERTS (2)</keyname>
<parentkeynum>0</parentkeynum>
<rowcnt>2</rowcnt>
<balance>0</balance>
</record>
- <record>
<keynum>-100000</keynum>
<keyname>FINANCIAL ALERTS (5)</keyname>
<parentkeynum>0</parentkeynum>
<rowcnt>5</rowcnt>
<balance>0</balance>
</record>
</records>
--~------------------------------------------------------------------
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>
--~--