【发布时间】:2011-01-11 04:36:54
【问题描述】:
我有一个场景,我将 .net 数据集导出到 xml 文件,但我想将 xml 输出的结构转换为更分层的结构。以下是 dataset.xmlwrite() 方法导出的数据集格式。
<NewDataSet>
<Table>
<id>100</id>
<empname>Joe Smith</empname>
<phone>111-111-1111</phone>
<mobile>222-222-2222</mobile>
</Table>
<Table>
<id>101</id>
<empname>Ann Jensen</empname>
<phone>111-111-0000</phone>
<mobile>222-222-0000</mobile>
</Table>
<NewDataSet>
我想把它转换成下面的结构。我是 xsl 转换的新手,我不确定如何防止 <Table> 元素对数据集中的每条记录重复。
<NewDataSet>
<Table>
<employee id="100">
<empname>Joe Smith</empname>
<phone>111-111-1111</phone>
<mobile>222-222-2222</mobile>
</employee>
<employee id="101">
<empname>Ann Jensen</empname>
<phone>111-111-0000</phone>
<mobile>222-222-0000</mobile>
</employee>
</Table>
<NewDataSet>
我尝试使用 xsl:for-each 和 xsl:if 语句的组合来获得我想要的东西,但到目前为止我还不能让它工作。任何帮助将不胜感激。
【问题讨论】:
-
好问题,+1。有关完全符合 XSLT 精神的简单而强大的解决方案,请参阅我的答案:使用并覆盖标识规则。另请注意,根本没有使用条件 XSLT 指令。 :)
标签: xslt dataset transform writexml