I converted my XML format to user defined format using XSLT. But now I want the XSLT to transform the user defined format data into original XML format. How can I achieve it using XSLT. Here I am attaching my XML as well as the XSLT code.
<?xml version="1.0" encoding="UTF-8"?>
<FLIGHT_TABLE>
<ZSCARR_LINE>
<CARRID>AA</CARRID>
<CARRNAME>American Airlines</CARRNAME>
<CURRCODE>USD</CURRCODE>
</ZSCARR_LINE>
<ZSCARR_LINE>
<CARRID>AB</CARRID>
<CARRNAME>Air Berlin</CARRNAME>
<CURRCODE>EUR</CURRCODE>
</ZSCARR_LINE>
<ZSCARR_LINE>
<CARRID>AC</CARRID>
<CARRNAME>Air Canada</CARRNAME>
<CURRCODE>CAD</CURRCODE>
</ZSCARR_LINE>
<ZSCARR_LINE>
<CARRID>AF</CARRID>
<CARRNAME>Air France</CARRNAME>
<CURRCODE>EUR</CURRCODE>
</ZSCARR_LINE>
</FLIGHT_TABLE>
And my XSLT Code:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://ift.tt/tCZ8VR">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="/*">
<!-- header -->
<xsl:text>Data-[{</xsl:text>
<xsl:for-each select="*[1]/*">
<xsl:value-of select="local-name()"/>
<xsl:if test="position()!=last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>},</xsl:text>
<!-- data -->
<xsl:for-each select="*">
<xsl:text>{</xsl:text>
<xsl:for-each select="*">
<xsl:value-of select="."/>
<xsl:if test="position()!=last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>}</xsl:text>
<xsl:if test="position()!=last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>]</xsl:text>
</xsl:template>
</xsl:stylesheet>
The output will be:
Data-[{CARRID,CARRNAME,CURRCODE},{AA,American Airlines,USD},{AB,Air Berlin,EUR},{AC,Air Canada,CAD},{AF,Air France,EUR}]
So now my requirement is like I want to again convert the above data into XML. Please help me find the solution for it.
Thanks, Kishore
No comments:
Post a Comment