相关疑难解决方法(0)

使用XSLT将XML转换为CSV

我有以下XML文档:

<projects>
  <project>
   <name>Shockwave</name> 
   <language>Ruby</language> 
   <owner>Brian May</owner> 
   <state>New</state> 
   <startDate>31/10/2008 0:00:00</startDate> 
  </project>
  <project>
   <name>Other</name> 
   <language>Erlang</language> 
   <owner>Takashi Miike</owner> 
   <state> Canceled </state> 
   <startDate>07/11/2008 0:00:00</startDate> 
  </project>
...
Run Code Online (Sandbox Code Playgroud)

我想从转换(XSLT)结果中得到这个结果:

Shockwave,Ruby,Brian May,New,31/10/2008 0:00:00
Other,Erlang,Takashi Miike,Cancelled,07/11/2008 0:00:00
Run Code Online (Sandbox Code Playgroud)

有谁知道XSLT实现这一目标?我正在使用.net以防万一.

xml csv xslt

72
推荐指数
4
解决办法
12万
查看次数

使用xslt stylesheet将xml文档转换为逗号分隔(CSV)文件

我需要一些帮助,使用xslt样式表将xml文档转换为CSV文件.我试图使用以下xsl,我似乎无法正确.我希望我的逗号分隔文件包含列标题,然后是数据.我最大的问题是删除最后一项之后的最后一个逗号并插入一个回车符,以便每组数据显示在一个单独的行上.我一直在使用XML Notepad.

  <xsl:template match="/">
        <xsl:element name="table">
              <xsl:apply-templates select="/*/*[1]" mode="header" />
              <xsl:apply-templates select="/*/*" mode="row" />
        </xsl:element>
  </xsl:template>

  <xsl:template match="*" mode="header">
        <xsl:element name="tr">
              <xsl:apply-templates select="./*" mode="column" />
        </xsl:element>
  </xsl:template>

  <xsl:template match="*" mode="row">
        <xsl:element name="tr">
              <xsl:apply-templates select="./*" mode="node" />
        </xsl:element>
  </xsl:template>

  <xsl:template match="*" mode="column">
        <xsl:element name="th">
              <xsl:value-of select="translate(name(.),'qwertyuiopasdfghjklzxcvbnm_','QWERTYUIOPASDFGHJKLZXCVBNM ')" />
        </xsl:element>,
  </xsl:template>

  <xsl:template match="*" mode="node">
        <xsl:element name="td">
              <xsl:value-of select="." />
        </xsl:element>,
  </xsl:template> 
Run Code Online (Sandbox Code Playgroud)

xml csv xslt

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

csv ×2

xml ×2

xslt ×2