Java中的XML: Java文档模子的用法[Java编程]
本文“Java中的XML: Java文档模子的用法[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在本系列的第一篇文章中,我研究了一些用 Java 编写的主要的 XML 文档模子的性能.但是,在开始挑选这种范例的技术时,性能只是问题的一部份.利用便利至少是一样重要的,并且它已是一个主要来由,来支持利用 Java 特定的模子,而不是与语言无关的 DOM .
为实在理解哪个模子真正的作用,您需求知道它们在可用性程度上是若何排名的.本文中,我将尝试举行这个工作,从样本代码开始,来演示如安在每个模子中编码大众范例的操作.并对后果举行总结来完毕本文,并且提出了促使一种表示比另一种更简单利用的一些别的因素.
请参阅从前的文章来获得这个比较中利用的各个模子的后台资料,包含实际的版本号.还可以参阅“参考资料”一节中关于源代码下载、到模子主页的链接以及别的相关信息.
代码比较
在对差别文档表示顶用法技术的这些比较中,我将显示如安在每种模子中实现三种基本操作:
按照输入流构建文档
遍历元素和内容,并做一些更改:
从文本内容中除去前导和尾随的空白.
假如后果文本内容为空,就删除它.
不然,将它包装到父元素的名称空间中一个名为“text”的新元素中.
将已改正的文档写入输出流
这些示例的代码是以我在上篇文章中利用的基准程序为底子的,并举行了一些简化.基准程序的核心是为了显示每个模子的最佳性能;关于本文,我将尝试显示在每种模子中实现操作的最简便办法.
我已经将每个模子的示例构造化为两个独立的代码段.第一段是读取文档、调用改正代码和编写已改正文档的代码.第二段是真正遍历文档表示和履行改正的递归办法.为避免分离注意力,我已在代码中忽视了非常处理.
即便您不想利用 DOM 实现,但还是值得浏览下面对 DOM 用法的描写.因为 DOM 示例是第一个示例,所以与背面的模子相比,我用它来根究有关该示例的一些问题和构造的更具体信息.浏览这些内容可以增补您想知道的一些细节,假如直接阅读别的模子之一,那么将错过这些细节.
DOM
DOM 标准涵盖了文档表示的全部范例的操作,但是它没有触及比方对文档的语法解析和生成文本输出这样的问题.包含在性能测试中的两种 DOM 实现,Xerces 和 Crimson,对这些操作利用差别的技术.清单 1 显示了 Xerces 的顶级代码的一种情势.
清单 1. Xerces DOM 顶级代码
1 // parse the document from input stream ("in")
2 DOMParser parser = new DOMParser();
3 parser.setFeature("http://xml.org/sax/features/namespaces", true);
4 parser.parse(new InputSource(in));
5 Document doc = parser.getDocument();
6 // recursively walk and modify document
7 modifyElement(doc.getDocumentElement());
8 // write the document to output stream ("out")
9 OutputFormat format = new OutputFormat(doc);
10 XMLSerializer serializer = new XMLSerializer(out, format);
11 serializer.serialize(doc.getDocumentElement());
以上是“Java中的XML: Java文档模子的用法[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |