我想從以下形式的XML文件進行CSV創建CSV:如何使用XSLT從XML
<?xml version="1.0" encoding="UTF-8"?>
<Envelope>
<Header>
<env:MessageSentDateTime>2012-09-19T09:50:04Z</env:MessageSentDateTime>
<env:MessageSequenceNumber>856432</env:MessageSequenceNumber>
</Header>
<Body>
<Data>
<Data:ID>
<Data:AODB>9346280</Data:AODB>
<Data:Ref>
<common:Code>HJ</common:Code>
<common:num>8113</common:num>
</Data:Ref>
</Data:ID>
... Continues like this, no set number of nodes, parts or AnotherParts
</Body>
Second message starting with <Header> ending with </Body>,
will be more than 2 in practice
</Envelope>
我想提出一個換行符CSV文件在/身體標籤因爲這表示一條新消息。在正文部分中會有不同數量的節點,不同數量的部分和不一致的末端節點的消息混合。另外,將會有不包含任何文本的節點,但我仍然需要逗號。
到目前爲止,我有:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="*[not(*)]">
<xsl:value-of select="normalize-space(.)"/>
<xsl:text>,</xsl:text>
</xsl:template>
<xsl:template match="Body[last()]">
<xsl:value-of select="normalize-space(.)"/>
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet>
它還在機身的最後一條信息後加逗號。我想用換行符替換那個逗號,有沒有簡單的方法來做到這一點?
問候, 大衛
試試這個:http://stackoverflow.com/questions/3056579/convert-xml-document-to-comma-delimited-csv-file-using-xslt-stylesheet –