[xsl] Help needed in recursively converting the flat xml to a heirarchical XML

Subject: [xsl] Help needed in recursively converting the flat xml to a heirarchical XML
From: "Sridhar Anupindi" <sridharanupindi@xxxxxxxxxxx>
Date: Sat, 27 Mar 2004 04:16:32 +0530
Hi,

I am trying to arrange the following flat XML into a heirarchical XML
File using recursion. Since I am a beginner in XSL, I need someone to
help out in this task.

The Input XML is:

<processXML><process-definition>
<name>Testing</name>
<description>Testing</description>
<start-state name="Start"><description>Start</description>
<transition to="WA0-Creator" />
</start-state>
<end-state name="Finish" />
<activity-state name="WA0-Creator"><description>WA0-Creator</description>
<transition to="OR-WA0-Creator" />
</activity-state>
<decision name="OR-WA0-Creator"><transition to="WA1" />
<transition to="AND-Split11" />
</decision>
<activity-state name="WA1"><description>WA1</description>
<transition to="Finish" />
</activity-state>
<concurrent-block>
<fork name="AND-Split11"><transition to="WA2A" />
<transition to="WA2B" />
</fork>
</concurrent-block>
<concurrent-block>
<fork name="AND-Split19"><transition to="WA5B" />
<transition to="WA5A" />
</fork>
</concurrent-block>
<activity-state name="WA5B"><description>WA5B</description>
<transition to="OR-Join71" />
</activity-state>
<activity-state name="WA5A"><description>WA5A</description>
<transition to="OR-Join71" />
</activity-state>
<join name="OR-Join71"><transition to="AND-Join58" />
</join>
<activity-state name="WA2A"><description>WA2A</description>
<transition to="AND-Split19" />
</activity-state>
<activity-state name="WA2B"><description>WA2B</description>
<transition to="AND-Join58" />
</activity-state>
<join name="AND-Join58"><transition to="WA2C" />
</join>
<activity-state name="WA2C"><description>WA2C</description>
<transition to="Finish" />
</activity-state>
</process-definition>
</processXML>

The Output should be as follows:

<processXML><process-definition>
<name>Testing</name>
<description>Testing</description>
<start-state name="Start"><description>Start</description>
<transition to="WA0-Creator" />
</start-state>
<end-state name="Finish" />
<activity-state name="WA0-Creator"><description>WA0-Creator</description>
<transition to="OR-WA0-Creator" />
</activity-state>
<decision name="OR-WA0-Creator"><transition to="WA1" />
<transition to="AND-Split11" />
</decision>
<activity-state name="WA1"><description>WA1</description>
<transition to="Finish" />
</activity-state>
<concurrent-block>
<fork name="AND-Split11"><transition to="WA2A" />
<transition to="WA2B" />
</fork>
<activity-state name="WA2A"><description>WA2A</description>
<transition to="AND-Join58" />
</activity-state>
<activity-state name="WA2B"><description>WA2B</description>
<transition to="AND-Join58" />
</activity-state>
<join name="AND-Join58"><transition to="WA2C" />
</join>
<concurrent-block>
<fork name="AND-Split19"><transition to="WA5B" />
<transition to="WA5A" />
</fork>
<activity-state name="WA5B"><description>WA5B</description>
<transition to="OR-Join71" />
</activity-state>
<activity-state name="WA5A"><description>WA5A</description>
<transition to="OR-Join71" />
</activity-state>
<join name="OR-Join71"><transition to="AND-Join58" />
</join>
</concurrent-block>
</concurrent-block>

<activity-state name="WA2C"><description>WA2C</description>
<transition to="Finish" />
</activity-state>
</process-definition>
</processXML>

I have to use recursion in order to achieve this as this can go into
nested loops. Any help is greatly appreciated.

Thanks

Sridhar Anupindi

Thanks

Sridhar Anupindi

_________________________________________________________________
Apply for a Citibank Suvidha Account. http://go.msnserver.com/IN/45533.asp Get FREE organiser.


Current Thread