Subject: RE: [xsl] transforming a XML to CSV From: "Xu, Xiaocun" <XXu@xxxxxxxxxxxx> Date: Wed, 14 Mar 2001 13:36:47 -0500 |
Hi, Anand: This should be pretty easy to do. The following template should transform your sample XML to the CSV you wanted. Enjoy :) Xiaocun Xu Emptoris, Inc. xxu@xxxxxxxxxxxx <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="text" encoding="ISO-8859-1"/> <xsl:strip-space elements="*"/> <xsl:template match="/"> <xsl:apply-templates select="REPORT_ITEM"/> </xsl:template> <xsl:template match="REPORT_ITEM"> <xsl:apply-templates select="DATA"/> </xsl:template> <xsl:template match="HEADER"> <xsl:value-of select="REPORT"/> <xsl:text>,</xsl:text> <xsl:value-of select="SYSTEM"/> <xsl:text>,</xsl:text> <xsl:value-of select="TZ"/> <xsl:text>,</xsl:text> <xsl:value-of select="MKT_TYPE"/> <xsl:text>,</xsl:text> <xsl:value-of select="SCHED_CLASS"/> <xsl:text>,</xsl:text> <xsl:value-of select="UOM"/> <xsl:text>,</xsl:text> <xsl:value-of select="INTERVAL"/> <xsl:text>,</xsl:text> <xsl:value-of select="SEC_PER_INTERVAL"/> </xsl:template> <xsl:template match="DATA"> <xsl:apply-templates select="../HEADER"/> <xsl:text>,</xsl:text> <xsl:value-of select="DATA_ITEM"/> <xsl:text>,</xsl:text> <xsl:value-of select="SOURCE"/> <xsl:text>,</xsl:text> <xsl:value-of select="SINK"/> <xsl:text>,</xsl:text> <xsl:value-of select="RESOURCE"/> <xsl:text>,</xsl:text> <xsl:value-of select="OPR_DATE"/> <xsl:text>,</xsl:text> <xsl:value-of select="INTERVAL_NUM"/> <xsl:text>,</xsl:text> <xsl:value-of select="NULL_FLAG"/> <xsl:text>,</xsl:text> <xsl:value-of select="VALUE"/> <xsl:text>
</xsl:text> </xsl:template> </xsl:stylesheet> -----Original Message----- From: Awasthi, Anand [mailto:Anand_Awasthi@xxxxxxx] Sent: Wednesday, March 14, 2001 12:47 PM To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx' Subject: [xsl] transforming a XML to CSV Hi, I am trying to transform the following XML file in to a comma separated file (.csv). <REPORT_ITEM> <HEADER> <REPORT>Venkatesh</REPORT> <SYSTEM>OASIS</SYSTEM> <TZ>PPT</TZ> <MKT_TYPE>R</MKT_TYPE> <SCHED_CLASS/> <UOM>US$</UOM> <INTERVAL>ENDING</INTERVAL> <SEC_PER_INTERVAL>3600</SEC_PER_INTERVAL> </HEADER> <DATA> <DATA_ITEM>SPIN_PRICE</DATA_ITEM> <SOURCE/> <SINK/> <RESOURCE>ZP26</RESOURCE> <OPR_DATE>20000512</OPR_DATE> <INTERVAL_NUM>24</INTERVAL_NUM> <NULL_FLAG>F</NULL_FLAG> <VALUE>0.25</VALUE> </DATA> <DATA> <DATA_ITEM>SPIN_PRICE</DATA_ITEM> <SOURCE/> <SINK/> <RESOURCE>ZP26</RESOURCE> <OPR_DATE>20000512</OPR_DATE> <INTERVAL_NUM>25</INTERVAL_NUM> <NULL_FLAG>T</NULL_FLAG> <VALUE/> </DATA> </REPORT_ITEM> <REPORT_ITEM> <HEADER> <REPORT>Parigi</REPORT> <SYSTEM>OASIS</SYSTEM> <TZ>PPT</TZ> <MKT_TYPE>D</MKT_TYPE> <SCHED_CLASS/> <UOM>MW</UOM> <INTERVAL>ENDING</INTERVAL> <SEC_PER_INTERVAL>3600</SEC_PER_INTERVAL> </HEADER> <DATA> <DATA_ITEM>SPIN_PRICE</DATA_ITEM> <SOURCE/> <SINK/> <RESOURCE>ZP26</RESOURCE> <OPR_DATE>20000512</OPR_DATE> <INTERVAL_NUM>24</INTERVAL_NUM> <NULL_FLAG>F</NULL_FLAG> <VALUE>0.25</VALUE> </DATA> <DATA> <DATA_ITEM>SPIN_PRICE</DATA_ITEM> <SOURCE/> <SINK/> <RESOURCE>ZP26</RESOURCE> <OPR_DATE>20000512</OPR_DATE> <INTERVAL_NUM>25</INTERVAL_NUM> <NULL_FLAG>T</NULL_FLAG> <VALUE/> </DATA> </REPORT_ITEM> the kind of output which i am trying to achieve is something like : ( i want HEADER ELEMENT to repeat with all DATA_ITEM ELELMENTS ) Venkatesh,1,US$,SPIN_PRICE,,,ZP26,20000512,24,F,0.25 Venkatesh,1,US$,SPIN_PRICE,,,ZP26,20000512,25,T Parigi,2,MW,SPIN_PRICE,,,ZP26,20000512,24,0.25 Parigi,2,MW,SPIN_PRICE,,,ZP26,20000512,25,T could someone please help me ?? thanks Anand XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] transforming a XML to CS, Robert C. Lyons | Thread | RE: [xsl] transforming a XML to CS, Awasthi, Anand |
[xsl] Dash, heavensky | Date | [xsl] Is this a legal XPath Express, Phil Gooch |
Month |