xsl-list
[Top] [All Lists]

nesting flat XML based on attribute value.

2005-12-13 10:38:42


Hello,

 I'm not sure whether I'm being dumb or not here but I'm stuck on converting a 
flat structure to a nested structure.

the flat structure is like this:-

<?xml version="1.0 " encoding="US-ASCII"?>
<doc>
  <ch id="1o1">
    <sec id="sec1o1o1" fpage="3" lpage="5" />
    <sec id="sec1o1o1o1" fpage="3" lpage="3"/>
    <sec id="sec1o1o1o2" fpage="3" lpage="4"/>
    <sec id="sec1o1o1o3" fpage="4" lpage="4"/>
    <sec id="sec1o1o1o4" fpage="4" lpage="5"/>
    <sec id="sec1o1o1o5" fpage="5" lpage="5"/>
    <sec id="sec1o1o2" fpage="5" lpage="7"/>
    <sec id="sec1o1o2o1" fpage="5" lpage="5"/>
    <sec id="sec1o1o2o2" fpage="5" lpage="5"/>
    <sec id="sec1o1o2o3" fpage="5" lpage="6"/>
    <sec id="sec1o1o2o4" fpage="6" lpage="7"/>
    <sec id="sec1o1o2o4o1" fpage="6" lpage="6"/>
    <sec id="sec1o1o2o4o2" fpage="6" lpage="6"/>
    <sec id="sec1o1o2o4o3" fpage="6" lpage="7"/>
    <sec id="sec1o1o3" fpage="7" lpage="10"/>
    <sec id="sec1o1o3o1" fpage="7" lpage="7"/>
    <sec id="sec1o1o3o1o1" fpage="7" lpage="7"/>
  </ch>
</doc>

I would like to get to

<?xml version="1.0" encoding="US-ASCII"?>
<doc>
  <ch id="1o1">
    <sec id="sec1o1o1" fpage="3" lpage="5">
      <sec id="sec1o1o1o1" fpage="3" lpage="3"/>
      <sec id="sec1o1o1o2" fpage="3" lpage="4"/>
      <sec id="sec1o1o1o3" fpage="4" lpage="4"/>
      <sec id="sec1o1o1o4" fpage="4" lpage="5"/>
      <sec id="sec1o1o1o5" fpage="5" lpage="5"/>
    </sec>
    <sec id="sec1o1o2" fpage="5" lpage="7">
      <sec id="sec1o1o2o1" fpage="5" lpage="5"/>
      <sec id="sec1o1o2o2" fpage="5" lpage="5"/>
      <sec id="sec1o1o2o3" fpage="5" lpage="6"/>
      <sec id="sec1o1o2o4" fpage="6" lpage="7">
        <sec id="sec1o1o2o4o1" fpage="6" lpage="6"/>
        <sec id="sec1o1o2o4o2" fpage="6" lpage="6"/>
        <sec id="sec1o1o2o4o3" fpage="6" lpage="7"/>
      </sec>
    </sec>
    <sec id="sec1o1o3" fpage="7" lpage="10">
      <sec id="sec1o1o3o1" fpage="7" lpage="7">
        <sec id="sec1o1o3o1o1" fpage="7" lpage="7"/>
      </sec>
    </sec>
  </ch>
</doc>

i.e.  both the nesting "level" and "order" are in the id attribute.

any tips appreciated.

 Dave.

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