【发布时间】:2011-12-03 07:08:55
【问题描述】:
有一个源 xml 文档。现在我想将它转换为另一个具有相同内容但元素顺序不同的 xml 文档。我的想法是使用 xslt,我认为这种方式也很好。
但是,我想知道还有其他方法吗?
谢谢
【问题讨论】:
有一个源 xml 文档。现在我想将它转换为另一个具有相同内容但元素顺序不同的 xml 文档。我的想法是使用 xslt,我认为这种方式也很好。
但是,我想知道还有其他方法吗?
谢谢
【问题讨论】:
xslt 很好,但您也可以从脚本语言调用一些 XML 库,甚至可以用 C 或 C++ 编写程序 ....
这实际上取决于性能考虑....(如果您每天必须处理数百 GB 大小的 XML 文档,或者一次只处理几十兆字节的文档)。
【讨论】:
您可以使用 Perl、Java、PHP、Ruby、Python 等编程语言来解析 XML,然后以所需的形式输出新的。
但是,正如您所说,XSLT 是最好的方法。
【讨论】:
作为 XSLT 的替代方案并使用您最喜欢的编程语言,有一个命令行工具 xmlstarlet 可以用比 xslt 简单得多的语法来处理大量 xml。请参阅此处了解概览
http://xmlstar.sourceforge.net/overview.php
这里有一个很好的教程:
http://www.ibm.com/developerworks/library/x-starlet/index.html
【讨论】:
还可以考虑 XQuery。我通常的经验法则是,对于简单任务,XQuery 比 XSLT 更好,而对于复杂任务,XSLT 更好。您尚未向我们展示您的数据,但 XQuery 中的解决方案可能很简单
<data> {
for $row in /*/row
order by $row/sort-key
return $row
}</data>
【讨论】: