2013-06-26 34 views
1

您好我有以下xml代碼: 然後,我需要將這些xml轉換爲csv格式,標題標題是show。如何使用xsl將xml轉換爲csv

<?xml version='1.0'?> 

    <portfolio> 

    <stock exchange="nasdaq"> 
    <name>zaffymat inc</name> 
    <symbol>ZFFX</symbol> 
    <price>92.250</price> 
    </stock> 

    <stock exchange="nyse"> 
    <name>zacx corp</name> 
    <symbol>ZCXM</symbol> 
    <price>28.875</price> 
    </stock> 

    <stock exchange="nasdaq"> 
    <name>zysmergy inc</name> 
    <symbol>ZYSZ</symbol> 
    <price>20.313</price> 
    </stock> 

    </portfolio> 

如何將xml轉換爲csv,如下面的輸出通過xsl?

"Name";"Price" 
"zaffymat inc";"92.250" 
"zysmergy inc";"20.313" 

謝謝。

+0

你試過了什麼? – Usman

回答

2

試試這個XSLT以得到所需輸出:

<xsl:template match="portfolio"> 
    <xsl:text>"Name";"Price"</xsl:text> 
    <xsl:text>&#10;</xsl:text> 
    <xsl:for-each select="stock"> 
     <xsl:text>"</xsl:text> 
     <xsl:value-of select="name"/> 
     <xsl:text>";</xsl:text> 
     <xsl:text>"</xsl:text> 
     <xsl:value-of select="price"/> 
     <xsl:text>"</xsl:text> 
     <xsl:text>&#10;</xsl:text> 
    </xsl:for-each> 
    </xsl:template> 
+0

Thanxs Navin.Its工作。我添加來過濾輸出。我還添加
來創建一個新行。 =) – qisadapolka

0

這是我的最後一個腳本:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="portfolio"> 

<xsl:text>"Name"</xsl:text> 
<xsl:text>&#10;</xsl:text> 
<xsl:text>;</xsl:text> 
<xsl:text>&#10;</xsl:text> 
<xsl:text>"Price"</xsl:text><br/>&#10; 

<xsl:for-each select="//stock[@exchange='nasdaq']"> 

<xsl:text>"</xsl:text> 
<xsl:value-of select="name"/> 
<xsl:text>"</xsl:text><xsl:text>&#10;</xsl:text> 

<xsl:text>;</xsl:text> 
<xsl:text>&#10;</xsl:text> 

<xsl:text>"</xsl:text> 
<xsl:value-of select="price"/> 
<xsl:text>"</xsl:text><br/>&#10; 

</xsl:for-each> 
</xsl:template> 

它的做工精細篩選出信息,使新線CSV輸出! =)