使用XSL模板将XML转换为CSV

时间:2016-07-28 00:06:31

标签: xml csv xslt

我得到了这个简单的XML文档:

<?xml version="1.0"?>
<document>
<category>
    <id>20504       </id>
    <title>ADSL iranga</title>
    <parent>Kompiuterinio tinklo</parent>
</category>
<category>
    <id>20902</id>
    <title>Akumuliatoriai</title>
    <parent>Baterijos akumuliatoriai</parent>
</category>
</document>

这个xsl模板:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="utf-8"/>
<xsl:strip-space elements="*" />

<xsl:template match="/category">
  <xsl:value-of select="id" /><xsl:text>,</xsl:text>
  <xsl:value-of select="title" /><xsl:text>,</xsl:text>
</xsl:template>


</xsl:stylesheet>

我想得到这个简单的输出:

id,title
id,title
id,title
<...>

但是,我没有得到我预期的分隔符“,” 我是以错误的方式使用xsl:text吗?

我正在使用xsltproc进行转换。

1 个答案:

答案 0 :(得分:2)

category不是输入XML的根元素 - 因此您的模板不匹配,您看到的输出由内置模板规则生成。

您需要更改:

<xsl:template match="/category">

为:

<xsl:template match="category">

我想你也想改变第二个:

<xsl:text>,</xsl:text>

为:

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