xsl-list
[Top] [All Lists]

Re: [xsl] Adding child element based on attribute value [XSLT 1.0]

2011-01-08 06:51:47
AHA!!!! Thanks Ken but I am using 1.0.





"G. Ken Holman" <gkholman(_at_)CraneSoftwrights(_dot_)com> 
01/08/11 06:20 PM
Please respond to
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com


To
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
cc

Subject
Re: [xsl] Adding child element based on attribute value [XSLT 1.0]






At 2011-01-08 17:20 +0530, pankaj(_dot_)c(_at_)thomsondigital(_dot_)com wrote:
Is there a way if I have XML.

<my_group count=3/>

The output I am expecting is adding child element based on value of
@count.

Output something like

<my_group count="3">
        <group name="type1"/>
        <group name="type2"/>
        <group name="type3"/>
</mygroup>

Any ideas will be highly appreciated.

You don't say how your name= attributes are derived, so I guessed.

The answer below using XSLT 2 is quite straightforward.

I hope this helps.

. . . . . . . . . . Ken

T:\ftemp>type pankaj.xml
<my_group count="3"/>
T:\ftemp>type pankaj.xsl
<?xml version="1.0" encoding="US-ASCII"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema";
                 exclude-result-prefixes="xsd"
                 version="2.0">

<xsl:output indent="yes"/>

<xsl:template match="my_group">
   <xsl:copy>
     <xsl:copy-of select="@*"/>
     <xsl:for-each select="1 to xsd:integer(@count)">
       <group name="type{.}"/>
     </xsl:for-each>
   </xsl:copy>
</xsl:template>

</xsl:stylesheet>
T:\ftemp>xslt2 pankaj.xml pankaj.xsl
<?xml version="1.0" encoding="UTF-8"?>
<my_group count="3">
    <group name="type1"/>
    <group name="type2"/>
    <group name="type3"/>
</my_group>
T:\ftemp>


--
Contact us for world-wide XML consulting & instructor-led training
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
G. Ken Holman                 mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


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