【发布时间】:2010-11-10 14:38:12
【问题描述】:
我有一些 XML 存储表中的列信息和行数据,格式如下:
<?xml version="1.0" encoding="utf-8"?>
<table>
<columns>
<column id="1">
<name>Date</name>
<type>Date</type>
</column>
<column id="2">
<name>Name</name>
<type>String</type>
</column>
</columns>
<rows>
<row id="1">
<columns>
<column id="1">
<name>Date</name>
<value>1-Dec-2010</value>
<localDate>1-Dec-2010 00:00:00 GMT</localDate>
</column>
<column id="2">
<name>Name</name>
<value>Jim</value>
</column>
</columns>
</row>
<row id="2">
<columns>
<column id="1">
<name>Date</name>
<value>2-Dec-2010</value>
<localDate>2-Dec-2010 00:00:00 GMT</localDate>
</column>
<column id="2">
<name>Name</name>
<value>Jane</value>
</column>
</columns>
</row>
</rows>
</table>
注意:这是我的 xml 的精简版。我有更多的行,并且在每列上存储了更多的信息。
是否可以应用 XSL 转换来遍历 xml 中的每一行并输出每一列的值。如果列是 DateTime 类型(在列信息中指定)我想输出 localDate 文本值,否则我将只输出 value 文本值。
我可以做一点 XSL,但我不确定您将如何检查文档的不同部分,这些部分基本上从 tableModel/rows/row/columns/column 映射到 tableModel/columns/column。
我基本上将其输出为 CSV。我有代码可以为每个 /tableModel/rows/row/columns/column xml 附加列信息,但我认为这是不必要的,它使 xml 太大,Netbeans/Visual Studio 无法处理(大约 7MB)。
我想要得到的输出是:
Date,Name
1-Dec-2010 00:00:00 GMT,Jim
2-Dec-2010 00:00:00 GMT,Jane
非常感谢,
安德斯
【问题讨论】: