XML简记

XML简记

一.王道和近道

先来做做DOMJDOM的比较,在《 JDOM XML 》中谈的非常好。

W3C DOM 设计的局限性:

言独立。这点不是很明显,JDOM同样存在这种问题

格的构。在这里点上用DOM编程非常痛苦,繁琐的显式下拉,得出来的东西经常是Node类型的,要想遍历都得做强制转化,特别对子节点的遍历的时候,子节点的类型判定,会耗费你大量的精神。

接口驱动 W3C做的东西都是接口,实际程序跑起来的时候,实现类都是通过工厂类得到的。

工厂类寻找实现DOM类的方法是这样的

FactoryFinder.find(

 /* The default property name according to the JAXP spec */

 "javax.xml.parsers.DocumentBuilderFactory",

 /* The fallback implementation class name */

"org.apache.crimson.jaxp.DocumentBuilderFactoryImpl");

第一步.先从系统属性中找javax.xml.parsers.DocumentBuilderFactory对应的类名,找到实例化返回。

第二步.$java.home/lib/xml.properties里面读javax.xml.parsers.DocumentBuilderFactory对应的类名,找到实例化返回。

第三步.上边两步都没有找到就从ClassPath中的META-INF/services/目录下找javax.xml.parsers.DocumentBuilderFactory文件里面的类名,实例化返回。

都没有,返回org.apache.crimson.jaxp.DocumentBuilderFactoryImpl的实例。

DOM你不用管底层的实现,用JDK提供给你的接口和抽象类编程就行了。如果在你引入的包中没有DOM的实现的话,JDK用自带的org.apache.crimson的东东,去实现DOM

DOM的优点就是它是XML的标准,标准的意思就是通用,他不需要你担心底层实现和环境配置不需要引入特殊的包,在作系统迁移或环境移植的时候不用作特殊的配置。但是说起编程的容易性来说,还是用JDOMDOM4J要来得容易多了。

JDOM Java 平台专用的。只要有可能,API 都使用 Java 语言的内建 String 支持,因此文本值也适用于 String。它还可利用 Java 2 平台的类集,如 List Iterator,给程序员提供了一个丰富的并且和 Java 语言类似的环境。

没有层次性。 JDOM 中,XML 元素就是 Element 的实例,XML 属性就是 Attribute 的实例,XML 文档本身就是 Document 的实例。由于在 XML 中所有这些都代表了不同的概念,因此它们总是作为自己的类型被引用,而不是作为一个含糊的结点

类驱动。因为 JDOM 对象就是像 DocumentElement Attribute 这些类的直接实例,因此创建一个新 JDOM 对象就如在 Java 语言中使用 new 操作符一样容易。它还意味着不需要进行工厂化接口配置 -- JDOM 的使用是直截了当的。

但是JDOM有他的优点也有他的缺点,你所有的操作都是基于类的,可移植性不如DOM,在JDOM版本升级,或者系统移植的时候,你本身代码改动可能性比较大一点。

二.JDK内带的XML操作库

JDK自己带了org.apachexalanorg.apachecrimsonCrimsonDOM的一个实现版本,XalanXSL Transformations (XSLT)的一个实现。用这些东西几乎可以完成xml的所有操作了。

参考接:

Java?中的?XML的用法
http://bbs.xml.org.cn/dispbbs.asp?boardID=41&ID=8710

JDOM XML

http://www-900.ibm.com/developerWorks/cn/java/j-jdom/index.shtml

JDOMXML文档

http://www.chinaunix.net/jh/26/15908.html

技巧:从 JDOM 转换

http://www-900.ibm.com/developerWorks/cn/xml/tips/x-tipcjdm/index.shtml

 

阅读更多
个人分类: JAVA
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

XML简记

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭