Hi,
I have a XML string and I want to transform this xml with xsl to get a
xml out put. I am trying this with java code, can any one point out
where is the problem.
XML file
<ROWSET>
<ROW num="1">
<NODE_ID>1</NODE_ID>
<NODE_VALUE>DAAAA</NODE_VALUE>
<PARENT_NODE_ID>0</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_1</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>0</NODE_LEVEL_NO>
<NODE_DESC>ALL DEPARTMENTS_RANGE 00000 - 99999</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>1</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>00000</LOW_VALUE>
<HIGH_VALUE>99999</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>0</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:44</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:44</LAST_UPDATED_DATETIME>
</ROW>
<ROW num="2">
<NODE_ID>2</NODE_ID>
<NODE_VALUE>D1AAA</NODE_VALUE>
<PARENT_NODE_ID>1</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_2</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>1</NODE_LEVEL_NO>
<NODE_DESC>COST OF SALES DEPTS_RANGE 10000 - 19999</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>2</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>10000</LOW_VALUE>
<HIGH_VALUE>19999</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>1</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:44</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:44</LAST_UPDATED_DATETIME>
</ROW>
<ROW num="3">
<NODE_ID>4</NODE_ID>
<NODE_VALUE>D14AA</NODE_VALUE>
<PARENT_NODE_ID>1</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_3</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>1</NODE_LEVEL_NO>
<NODE_DESC>SERVICE COS DEPTS_RANGE 14000 - 19999</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>3</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>14000</LOW_VALUE>
<HIGH_VALUE>19999</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>1</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:44</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:44</LAST_UPDATED_DATETIME>
</ROW>
<ROW num="4">
<NODE_ID>6</NODE_ID>
<NODE_VALUE>D150A</NODE_VALUE>
<PARENT_NODE_ID>1</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_4</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>1</NODE_LEVEL_NO>
<NODE_DESC>EDUCATION DEPTS_RANGE 15000 - 15999</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>4</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>15000</LOW_VALUE>
<HIGH_VALUE>15999</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>1</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:44</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:44</LAST_UPDATED_DATETIME>
</ROW>
<ROW num="5">
<NODE_ID>8</NODE_ID>
<NODE_VALUE>D2AAA</NODE_VALUE>
<PARENT_NODE_ID>1</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_2</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>1</NODE_LEVEL_NO>
<NODE_DESC>RESEARCH AND DEVELOPMENT DEPTS_RANGE 20000 -
29999</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>2</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>20000</LOW_VALUE>
<HIGH_VALUE>29999</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>1</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:44</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:44</LAST_UPDATED_DATETIME>
</ROW>
<ROW num="6">
<NODE_ID>9</NODE_ID>
<NODE_VALUE>D3AAA</NODE_VALUE>
<PARENT_NODE_ID>1</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_2</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>1</NODE_LEVEL_NO>
<NODE_DESC>SALES DEPTS_RANGE 30000 - 69999</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>2</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>30000</LOW_VALUE>
<HIGH_VALUE>69999</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>1</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:44</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:44</LAST_UPDATED_DATETIME>
</ROW>
<ROW num="7">
<NODE_ID>12</NODE_ID>
<NODE_VALUE>D50AA</NODE_VALUE>
<PARENT_NODE_ID>1</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_3</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>1</NODE_LEVEL_NO>
<NODE_DESC>MARKETING DEPTS_RANGE 50000 - 59999</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>3</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>50000</LOW_VALUE>
<HIGH_VALUE>59999</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>1</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:45</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:45</LAST_UPDATED_DATETIME>
</ROW>
<ROW num="8">
<NODE_ID>14</NODE_ID>
<NODE_VALUE>D530A</NODE_VALUE>
<PARENT_NODE_ID>1</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_4</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>1</NODE_LEVEL_NO>
<NODE_DESC>REGIONAL MARKETING DEPTS_RANGE 53000 -
55999</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>4</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>53000</LOW_VALUE>
<HIGH_VALUE>55999</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>1</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:45</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:45</LAST_UPDATED_DATETIME>
</ROW>
<ROW num="9">
<NODE_ID>16</NODE_ID>
<NODE_VALUE>D60AA</NODE_VALUE>
<PARENT_NODE_ID>1</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_3</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>1</NODE_LEVEL_NO>
<NODE_DESC>OPEN RANGE DEPTS_RANGE 60000 - 69999</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>3</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>60000</LOW_VALUE>
<HIGH_VALUE>69999</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>1</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:45</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:45</LAST_UPDATED_DATETIME>
</ROW>
<ROW num="10">
<NODE_ID>25</NODE_ID>
<NODE_VALUE>D76AA</NODE_VALUE>
<PARENT_NODE_ID>1</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_4</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>1</NODE_LEVEL_NO>
<NODE_DESC>FACILITIES DEPTS_RANGE 76000 - 76999</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>4</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>76000</LOW_VALUE>
<HIGH_VALUE>76999</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>1</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:46</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:46</LAST_UPDATED_DATETIME>
</ROW>
<ROW num="11">
<NODE_ID>24</NODE_ID>
<NODE_VALUE>D755A</NODE_VALUE>
<PARENT_NODE_ID>1</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_4</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>1</NODE_LEVEL_NO>
<NODE_DESC>OPERATIONS DEPTS_RANGE 75500 - 75999</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>4</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>75500</LOW_VALUE>
<HIGH_VALUE>75999</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>1</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:46</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:46</LAST_UPDATED_DATETIME>
</ROW>
<ROW num="12">
<NODE_ID>23</NODE_ID>
<NODE_VALUE>D750A</NODE_VALUE>
<PARENT_NODE_ID>1</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_4</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>1</NODE_LEVEL_NO>
<NODE_DESC>PROCUREMENT DEPTS_RANGE 75000 - 75499</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>4</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>75000</LOW_VALUE>
<HIGH_VALUE>75499</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>1</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:46</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:46</LAST_UPDATED_DATETIME>
</ROW>
<ROW num="13">
<NODE_ID>22</NODE_ID>
<NODE_VALUE>D74AA</NODE_VALUE>
<PARENT_NODE_ID>1</PARENT_NODE_ID>
<NODE_LEVEL_NAME>VRTS_GL_DEPARTMENT_4</NODE_LEVEL_NAME>
<NODE_LEVEL_NO>1</NODE_LEVEL_NO>
<NODE_DESC>LEGAL DEPTS_RANGE 74000 - 74999</NODE_DESC>
<NODE_LEVEL_FOR_REPORTING>4</NODE_LEVEL_FOR_REPORTING>
<LOW_VALUE>74000</LOW_VALUE>
<HIGH_VALUE>74999</HIGH_VALUE>
<HIERARCHY_ID>60</HIERARCHY_ID>
<NODE_TYPE>1</NODE_TYPE>
<CREATION_DATETIME>12/16/2004 18:59:45</CREATION_DATETIME>
<LAST_UPDATED_DATETIME>12/16/2004
18:59:45</LAST_UPDATED_DATETIME>
</ROW>
</ROWSET>
XLST File:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="ROWSET">
<hierarchy>
<xsl:apply-templates select="ROW[PARENT_NODE_ID=0]" mode="copy"/>
</hierarchy>
</xsl:template>
<xsl:template match="ROW" mode="copy">
<xsl:element name="entity">
<xsl:attribute name="id">id<xsl:value-of
select="NODE_ID"/></xsl:attribute>
<xsl:attribute name="parent_id">id<xsl:value-of
select="PARENT_NODE_ID"/></xsl:attribute>
<xsl:attribute name="name"><xsl:value-of
select="NODE_VALUE"/></xsl:attribute>
<xsl:attribute name="description"><xsl:value-of
select="NODE_DESC"/></xsl:attribute>
<xsl:attribute name="node_state">original</xsl:attribute>
<xsl:element name="leafNode">
<xsl:value-of select="NODE_TYPE"></xsl:value-of>
</xsl:element>
<contents>
<xsl:apply-templates
select="//ROW[PARENT_NODE_ID=current()/NODE_ID]"/>
</contents>
</xsl:element>
</xsl:template>
<xsl:template match="ROW">
<xsl:apply-templates select="." mode="copy"/>
</xsl:template>
</xsl:stylesheet>
when I apply this it works fine, but result i am getting is
0111111111111111112211111
instead i want output as
<hierarchy>
<entity id="id1" parent_id="id0" name="DAAAA" description="ALL
DEPARTMENTS_RANGE 00000 - 99999" node_state="original">
<leafNode>0</leafNode>
<contents>
<entity id="id2" parent_id="id1" name="D1AAA" description="COST OF
SALES DEPTS_RANGE 10000 - 19999" node_state="original">
<leafNode>1</leafNode>
<contents />
</entity>
<entity id="id4" parent_id="id1" name="D14AA" description="SERVICE
COS DEPTS_RANGE 14000 - 19999" node_state="original">
<leafNode>1</leafNode>
<contents />
</entity>
</hierarchy>
Thanks
~GBK