xsl-list
[Top] [All Lists]

RE: [xsl] Creating Hierarchy

2008-10-12 14:44:59
You'll find a description of an XSLT 2.0 stylesheet that does this (and some
other things besides) at

http://www.idealliance.org/proceedings/xml04/papers/111/mhk-paper.html

Michael Kay
http://www.saxonica.com/ 

-----Original Message-----
From: Rowan Sylvester-Bradley [mailto:rowan(_at_)sylvester-bradley(_dot_)org] 
Sent: 12 October 2008 18:44
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Creating Hierarchy

Hi,

I have an XML file that represents a tree of data elements, 
similar to a directory tree. The structure of the file has 
every node in the tree represented by a <node> element, all 
children of the root, with the hierarchy defined by a <level> 
element within each node. So the <node> with <level> = 0 is 
the root of the tree, its children have <level> = 1, their 
children have <level> = 2 etc. Here's an example:

<mytree>
  <node>
    <name>Root of my tree</name>
    <level>0</level>
  </node>
  <node>
    <name>Child of root</name>
    <level>1</level>
  </node>
  <node>
    <name>Another child of root</name>
    <level>1</level>
  </node>
  <node>
    <name>Grandchild of root</name>
    <level>2</level>
  </node>
  <node>
    <name>Yet another child of root</name>
    <level>1</level>
  </node>
</mytree>

I want to transform this into a hierarchical file like this:

<newnode>
  <name>Root of my tree</name>
  <newnode>
    <name>Child of root</name>
  </newnode>
  <newnode>
    <name>Another child of root</name>
    <newnode>
      <name>Grandchild of root</name>
    </newnode>
  </newnode>
  <newnode>
    <name>Yet another child of root</name>
  </newnode>
</newnode>

How do I write a stylesheet to do this?

Thanks - Rowan 



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



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