I am trying to generate XSL file based on the XML config file using xsl transformation.
Here is my input.
<front>
<sample1/>
<sample2/>
<sample3>
<item1/>
<item2/>
<item3/>
<item4/>
</sample3>
<sample4/>
</front>
I am expecting to get xsl file like,
<xsl:template match="//div[@class='front']">
<xsl:apply-templates select=".//*[@class='sample1']"/>
<xsl:apply-templates select=".//*[@class='sample2']"/>
<xsl:apply-templates select=".//*[@class='sample3']"/>
<xsl:apply-templates select=".//*[@class='sample4']"/>
</xsl:template>
<xsl:template match="//*[@class='sample3']">
<xsl:apply-templates select=".//*[@class='item1']"/>
<xsl:apply-templates select=".//*[@class='item2']"/>
<xsl:apply-templates select=".//*[@class='item3']"/>
<xsl:apply-templates select=".//*[@class='item4']"/>
</xsl:template>
Is this can be done using xsl transformation? The main idea is each and every time I make changes in the config file, I no need to write xsl file. It should be generated. If I make changes like,
<front>
<sample1/>
<sample2/>
<sample4/>
<sample3>
<item1/>
<item2/>
<item4/>
<item3/>
</sample3>
</front>
The xsl should be,
<xsl:template match="//div[@class='front']">
<xsl:apply-templates select=".//*[@class='sample1']"/>
<xsl:apply-templates select=".//*[@class='sample2']"/>
<xsl:apply-templates select=".//*[@class='sample4']"/>
<xsl:apply-templates select=".//*[@class='sample3']"/>
</xsl:template>
<xsl:template match="//*[@class='sample3']">
<xsl:apply-templates select=".//*[@class='item1']"/>
<xsl:apply-templates select=".//*[@class='item2']"/>
<xsl:apply-templates select=".//*[@class='item4']"/>
<xsl:apply-templates select=".//*[@class='item3']"/>
</xsl:template>
Any help will be appreciated. Thanks in advance!