我需要将 xml 文件转换为 csv 文件。因此我使用的是 msxsl。xml 文件如下所示:
(...)
<Test>
<Field1>Blabla</Field1>
<Values>
<Year>2012</Year>
<Value>12</Value>
</Values>
<Values>
<Year>2013</Year>
<Value>1234</Value>
</Values>
<Field2>abc</Field2>
</Test>
<Test>
<Field1>Blubblub</Field1>
<Field2>def</Field2>
</Test>
(...)
这意味着:有数据集“测试”具有多个节点“值”,而其他数据集则没有。
我试图用 for-each 解决这个问题:
(...)
<xsl:for-each select="Test">
(...)
<xsl:for-each select="Values">
(...)
</xsl:for-each>
</xsl:for-each>
(...)
这有效(在某种程度上),但数据集之间的列数不匹配。我需要在每个数据集中都有整个文件中每个节点的最大列数。
最后应该能够用excel打开csv文件。因此每一列都需要包含相同的数据......有什么办法吗?
谢谢!
编辑:在这种情况下,预期的 csv 输出将如下所示:
Blabla;2012;12;2013;1234;abc
Blubblub;;;;;def
... 并不是:
Blabla;2012;12;2013;1234;abc
Blubblub;def