来自 excel 的 xml 包含 3 个相同的组 - 转换为一个重复组
我是 XML 和 XSLT 的新手。我在论坛里搜索过类似的东西但没有成功。是否可以使用 XSLT 进行以下翻译?它基本上是一个从 Excel 电子表格派生的 XML,其中有 3 个相同的组在同一行上重复,因此它们具有不同的名称,group1、…2 和…3,我想将它们组成一个组,重复 3 次,如果其中有数据。下面的示例是一个简化版本:
<application>
<group1>
<name1>John</name1>
</group1>
<group2>
<name2>Mary</name2>
</group2>
<group3>
<name3>Peter</name3>
</group3>
</application>
转换为
<application>
<group ref="001">
<line_no>001</line_no>
<name>John</name>
</group>
<group ref="002">
<line_no>002</line_no>
<name>Mary</name>
</group>
<group ref="003">
<line_no>003</line_no>
<name>Peter</name>
</group>
</application>
Excel 不适合以最简单的方式导出为 XML。
I am a newby at XML and XSLT. I have searched for something similar in the forum without success. Is the follow translation possible with XSLT? It is basically an XML derived from an Excel spreadsheet, which has 3 groups which are identical repeated on the same row, so they have different names, group1, …2 and …3, which I want to make into one group repeated 3 times if there is data in them. The example below is a simplified version:
<application>
<group1>
<name1>John</name1>
</group1>
<group2>
<name2>Mary</name2>
</group2>
<group3>
<name3>Peter</name3>
</group3>
</application>
convert to
<application>
<group ref="001">
<line_no>001</line_no>
<name>John</name>
</group>
<group ref="002">
<line_no>002</line_no>
<name>Mary</name>
</group>
<group ref="003">
<line_no>003</line_no>
<name>Peter</name>
</group>
</application>
Excel does not lend itself to exporting to XML in any but the most simple way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一种样式表可以是:
输出:
One stylesheet could be:
Output:
Xslt 有一个
position()
函数。这应该可以帮助您获取姓名前面的号码。希望这有帮助。
Xslt has a
position()
function. This should help you get the number in front of the name.Hope this helps.