我在一篇技术文章中读过,使用XSLT在XML文件中进行修改比使用像XML,JDOM,SAX,JSoup等XML解析器更有效,更可靠。所以我想知道哪个参数XSLT比XML解析器更有效,更易于使用。 (XSLT是否提供了更通用,更简单的解决方案?) 感谢你。
例如为: 如果我有一个XML文件:
<node1>
<node2> TEXT </node2>
</node1>
我需要输出为:
<node1>
<node2> TEXT </node2>
<script src="xyz.js"></srcipt>
</node>
然后我可以为此编写一个XSLT以获得所需的输出,或者我可以使用XML-parser(DOM,SAX等)编写Java程序以在所需位置插入所需元素并获得所需的输出。所以对此我已经读过,XSLT被认为是更优选和有效的。
答案 0 :(得分:6)
效率是一种观点的概念......
一个好的XSLT转换文档可能非常小,并且需要经验丰富的“XSLT专家”一段时间才能完成。从“发展”的角度来看,它会非常有效。
就CPU周期而言,XSLT选项可能不是最有效的。
一个好的'直接'(DOM / JDOM / SAX /无论如何)流程编程会比XSLT更快,甚至更快,但却是一个非基于XML的流程......(比如'sed'或' AWK')。
所以,我会挑战你的'技术论文'的结论。在许多情况下,XSLT比其他解决方案更“可取”,因为它更容易(专家)维护,更改等。但就“效率”而言,技术论文必须首先定义它的含义。
底线是XSLT位于某个XML模型(SAX / DOM / JDOM / etc。)之上,因此它永远不会像原始模型那样高效......然后所有XML模型都效率低下,如果你也摆脱了这一层。
罗尔夫
答案 1 :(得分:5)
对于许多小的转换,成本主要由解析和序列化决定,并且与转换逻辑是用XSLT还是Java编写无关。 (所以在XSLT中写一下,因为这样做的工作量较少)。
如果转换变得更加复杂,那么智能Java程序员可能会胜过XSLT引擎,但普通的Java程序员却不会。好的,你知道你很聪明。但平均来说,你可能很平均。