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