【问题标题】:How to convert xml to csv using xsl如何使用 xsl 将 xml 转换为 csv
【发布时间】:2013-06-23 05:42:04
【问题描述】:

您好,我有以下 xml 代码: 然后我需要将这些 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>

如何通过 xsl 将上面的 xml 转换为如下输出的 csv?

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

谢谢。

【问题讨论】:

    标签: xml xslt csv


    【解决方案1】:

    试试这个 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>
    

    【讨论】:

    【解决方案2】:

    这是我的最后一个脚本:

    <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 输出创建新行! =)

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 1970-01-01
      • 2022-01-11
      • 2016-02-13
      • 2011-12-31
      • 2012-02-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      相关资源
      最近更新 更多