Hi Ardian,
Assuming that you are taking the first xml structure as your input and
transforming it into the corrected version of xml as your output using a
xsl.
You xsl should look something like:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<xsl:text disable-output-escaping="yes"><?xml version="1.0"
encoding="ISO-8859-1"?></xsl:text>
<ROOT>
<node_1 attrib1_1="3"
attrib1_2="282"
attrib1_3="ABC"
attrib1_4="BCD"
attrib1_5="0">
<xsl:apply-templates select="//ROOT/node_1"/>
</node_1>
</ROOT>
</xsl:template>
<xsl:template match="node_1">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
Thanks,
Viral.
-----Original Message-----
From: aalikaj(_at_)ntuitive(_dot_)com [mailto:aalikaj(_at_)ntuitive(_dot_)com]
Sent: Wednesday, April 21, 2004 10:47 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] XML Group with XSL
Hi all,
I'm new to XSL, and my question might be quickly addressed. I have an XML
file with the following structure.
<?xml version="1.0" encoding="ISO-8859-1"?>
<ROOT>
<node_1 attrib1_1="3"
attrib1_2="282"
attrib1_3="ABC"
attrib1_4="BCD"
attrib1_5="0">
<node_21 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib2_4="1"
attrib2_5="BCD">
<node_3 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="1"
attrib3_5="XYZ">
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="1"
node4_5="1"
node4_6="Yes"/>
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="1"
node4_5="2"
node4_6="No"/>
</node_3>
<node_3 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
attrib3_5="cvb">
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
node4_5="1"
node4_6="A"/>
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
node4_5="2"
node4_6="B"/>
</node_3>
</node_21>
<node_21 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib2_4="1"
attrib2_5="bbb">
<node_3 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="1"
attrib3_5="bbb1">
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="1"
node4_5="1"
node4_6="aa"/>
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="1"
node4_5="2"
node4_6="bb"/>
</node_3>
<node_3 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="2"
attrib3_5="cvb">
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="2"
node4_5="1"
node4_6="yy"/>
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
node4_5="2"
node4_6="zz"/>
</node_3>
</node_21>
</node_1>
<node_1 attrib1_1="3"
attrib1_2="282"
attrib1_3="ABC"
attrib1_4="BCD"
attrib1_5="0">
<node_22 attrib1_1="3"
attrib1_2="282"
attrib_a1="value_a1"
attrib_b1="value_b1"
attrib_c1="value_c1"/>
<node_22 attrib1_1="3"
attrib1_2="282"
attrib_a2="value_a2"
attrib_b2="value_b2"
attrib_c2="value_c2"/>
<node_22 attrib1_1="3"
attrib1_2="282"
attrib_a3="value_a3"
attrib_b3="value_b3"
attrib_c3="value_c3"/>
<node_22 attrib1_1="3"
attrib1_2="282"
attrib_a4="value_a4"
attrib_b4="value_b4"
attrib_c4="value_c4"/>
</node_1>
<node_1 attrib1_1="3"
attrib1_2="282"
attrib1_3="ABC"
attrib1_4="BCD"
attrib1_5="0">
<node_23 attrib1_1="3"
attrib1_2="282"
attrib_1="1"/>
<node_23 attrib1_1="3"
attrib1_2="282"
attrib_2="2"/>
</node_1>
</ROOT>
As you see, node_1 is being repeted having the same attribute values but
different children nodes. I want to group the children nodes of node_1, so
I want the following output.
<?xml version="1.0" encoding="ISO-8859-1"?>
<ROOT>
<node_1 attrib1_1="3"
attrib1_2="282"
attrib1_3="ABC"
attrib1_4="BCD"
attrib1_5="0">
<node_21 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib2_4="1"
attrib2_5="BCD">
<node_3 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="1"
attrib3_5="XYZ">
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="1"
node4_5="1"
node4_6="Yes"/>
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="1"
node4_5="2"
node4_6="No"/>
</node_3>
<node_3 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
attrib3_5="cvb">
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
node4_5="1"
node4_6="A"/>
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
node4_5="2"
node4_6="B"/>
</node_3>
</node_21>
<node_21 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib2_4="1"
attrib2_5="bbb">
<node_3 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="1"
attrib3_5="bbb1">
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="1"
node4_5="1"
node4_6="aa"/>
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="1"
node4_5="2"
node4_6="bb"/>
</node_3>
<node_3 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="2"
attrib3_5="cvb">
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="2"
node4_5="1"
node4_6="yy"/>
<node_4 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
node4_5="2"
node4_6="zz"/>
</node_3>
</node_21>
<node_22 attrib1_1="3"
attrib1_2="282"
attrib_a1="value_a1"
attrib_b1="value_b1"
attrib_c1="value_c1"/>
<node_22 attrib1_1="3"
attrib1_2="282"
attrib_a2="value_a2"
attrib_b2="value_b2"
attrib_c2="value_c2"/>
<node_22 attrib1_1="3"
attrib1_2="282"
attrib_a3="value_a3"
attrib_b3="value_b3"
attrib_c3="value_c3"/>
<node_22 attrib1_1="3"
attrib1_2="282"
attrib_a4="value_a4"
attrib_b4="value_b4"
attrib_c4="value_c4"/>
<node_23 attrib1_1="3"
attrib1_2="282"
attrib_1="1"/>
<node_23 attrib1_1="3"
attrib1_2="282"
attrib_2="2"/>
</node_1>
</ROOT>
Can anyone help me with this issue?
Thanks in advance
Ardian Alikaj
Software Developer
Ntuitive Software & Systems.
E: aalikaj(_at_)ntuitive(_dot_)com
T: 416.863.9566 x326
F: 416.863.8919
--+------------------------------------------------------------------
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>
--+--