Subject: RE: 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: 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 |
- transforming a XML to CSV
- Awasthi, Anand - Wed, 14 Mar 2001 12:48:39 -0500 (EST)
- <Possible follow-ups>
- Xu, Xiaocun - Wed, 14 Mar 2001 13:39:34 -0500 (EST) <=
- Awasthi, Anand - Wed, 14 Mar 2001 14:25:08 -0500 (EST)
- Xu, Xiaocun - Wed, 14 Mar 2001 14:31:08 -0500 (EST)
- Xu, Xiaocun - Wed, 14 Mar 2001 14:40:15 -0500 (EST)
|
|