您好我有以下xml代码: 然后我需要将那些xml转换为csv格式,标题标题为show。
<?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 :(得分:2)
尝试使用此XSLT获取所需的输出:
<xsl:template match="portfolio">
<xsl:text>"Name";"Price"</xsl:text>
<xsl:text> </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> </xsl:text>
</xsl:for-each>
</xsl:template>
答案 1 :(得分: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> </xsl:text>
<xsl:text>;</xsl:text>
<xsl:text> </xsl:text>
<xsl:text>"Price"</xsl:text><br/>
<xsl:for-each select="//stock[@exchange='nasdaq']">
<xsl:text>"</xsl:text>
<xsl:value-of select="name"/>
<xsl:text>"</xsl:text><xsl:text> </xsl:text>
<xsl:text>;</xsl:text>
<xsl:text> </xsl:text>
<xsl:text>"</xsl:text>
<xsl:value-of select="price"/>
<xsl:text>"</xsl:text><br/>
</xsl:for-each>
</xsl:template>
它可以很好地过滤掉信息并为csv输出创建新行! =)