Hi all,
Any workaround for my issue??
Thanks
Ardian Alikaj
Software Developer
Ntuitive Software & Systems.
E: aalikaj(_at_)ntuitive(_dot_)com
T: 416.863.9566 x326
F: 416.863.8919
aalikaj(_at_)ntuitive(_dot_)
com To:
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
cc:
04/21/2004 01:04 Subject: RE: [xsl] XML Group
with XSL
PM
Please respond to
xsl-list
Thank you all for your quick reply,
My Input XML file is little bit more complicated, in my previous example i
wanted to group the chidlren nodes on the same node_1. How can I group the
children nodes of the same "node_3" element??
For example, the input XML is:
<?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_41 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="1"
node4_5="1"
node4_6="Yes"/>
<node_41 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_41 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
node4_5="1"
node4_6="A"/>
<node_41 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_41 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="1"
node4_5="1"
node4_6="aa"/>
<node_41 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_41 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="2"
node4_5="1"
node4_6="yy"/>
<node_41 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>
<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="2"
attrib2_4="1"
attrib2_5="bbb">
<node_3 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="2"
attrib3_5="cvb">
<node_42 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="2"
node_a="1"
node_b="1"
node_c="1"
noded="yy"/>
<node_42 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
node_a="2"
node_b="2"
node_c="2"
noded="xx"/>
</node_3>
</node_21>
</node_1>
</ROOT>
and I want it in the following format :
<?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_41 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="1"
node4_5="1"
node4_6="Yes"/>
<node_41 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_41 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
node4_5="1"
node4_6="A"/>
<node_41 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_41 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="1"
node4_5="1"
node4_6="aa"/>
<node_41 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_41 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="2"
node4_5="1"
node4_6="yy"/>
<node_41 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
node4_5="2"
node4_6="zz"/>
<node_42 attrib1_1="3"
attrib1_2="282"
attrib2_3="2"
attrib3_4="2"
node_a="1"
node_b="1"
node_c="1"
noded="yy"/>
<node_42 attrib1_1="3"
attrib1_2="282"
attrib2_3="1"
attrib3_4="2"
node_a="2"
node_b="2"
node_c="2"
noded="xx"/>
</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>
As you can notice, for the node_1 and node_3 i want to group all the
children nodes.
Can anybody help me?
Thank you
Ardian Alikaj
Software Developer
Ntuitive Software & Systems.
E: aalikaj(_at_)ntuitive(_dot_)com
T: 416.863.9566 x326
F: 416.863.8919
"Andreas L.
Delmelle" To:
<xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
<a_l(_dot_)delmelle(_at_)pan cc:
dora.be> Subject: RE: [xsl] XML
Group with XSL
04/21/2004 12:17
PM
Please respond to
xsl-list
-----Original Message-----
From: Patel, Viral [mailto:viral(_dot_)patel(_at_)countryfinancial(_dot_)com]
You xsl should look something like:
Hi,
The proposed solution won't yield the desired result. The result from your
code would look something like
<ROOT>
<node_1 ...>
<node_1 ...>
<node_1 ...>
</node_1>
</ROOT>
The intention was good, but it needs to be modified 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>
??? Why are you explicitly inserting the XML declaration in this way?
If you use <xsl:output method="XML" /> (which is the default BTW), the XML
declaration will be added anyway, and so, if you subsequently use xsl:text
to insert it again, the resulting XML document will be in error.
So, remove the <xsl:text ...> !! If you really need 'ISO-8859-1' encoding
for the result, just add the following as child of xsl:stylesheet :
<xsl:output method="XML" encoding="ISO-8859-1" />
Apply templates only to the first node_1 node:
<ROOT>
<xsl:apply-templates select="ROOT/node_1[1]" />
</ROOT>
And in the template matching the node_1 nodes, create a copy, then copy the
attributes, and finally copy all children of the current node as well as
the
children of the other (following-sibling) node_1 nodes :
<xsl:template match="node_1">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:copy-of select="* | following-sibling::node_1/*" />
</xsl:copy>
</xsl:template>
Hope this helps!
Cheers,
Andreas
--+------------------------------------------------------------------
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>
--+--