dom4j vs. jdom

 

dom4j

jdom

创建

一般采用面向接口编程,DocumentElementAttribute等均为接口,要创建这些元素一般调用或委托DocumentFactory(单例)的工厂方法完成;

元素之间的关系可由工厂方法自动维护

DocumentElementAttribute等均为类,直接使用其构造器创建对象;

元素之间的关系需要编程维护

修改

删除某个节点时,需要先得到节点对象,然后调用父节点的remove()方法;

在特定位置插入节点,需要得到父节点的所有子节点List,并在List特定位置插入构造器创建的子节点(一般为DefaultElement对象)

删除某个节点时,不需要得到节点对象,可根据节点名直接调用父节点的removeChild()方法;

在特定位置插入节点,仅需要调用父节点带索引的addContent()方法将创建的节点对象插入即可

保存

文档格式由OutputFormat对象(可用工厂方法创建)控制。以createPrettyPrint()方法创建的对象为例,常用设置如下:

l  setExpandEmptyElements():是否扩展空元素

l  setSuppressDeclaration():是否输出xml声明,不输出时会预留空行

l  setOmitEncoding():是否输出xml声明中的编码信息

l  setNewLineAfterDeclaration():是否在xml声明后预留空行,默认留空行

l  setLineSeparator():设置行分隔符,默认为\n,一般设置为\r\n

文档输出保存由XMLWriter对象的write()方法完成

文档格式由Format对象(可用工厂方法创建)控制。以getPrettyFormat()方法创建的对象为例,常用设置如下:

l  setExpandEmptyElements():是否扩展空元素

l  setOmitDeclaration():是否输出xml声明,不输出时不预留空行

l  setOmitEncoding():是否输出xml声明中的编码信息;

l  -- 无法设置xml声明后是否预留空行,默认不留

l  setLineSeparator():设置行分隔符,默认为\r\n

文档输出保存由XMLOutputter对象的output()方法完成

读取

使用SAXReader对象的read()方法

使用SAXBuilder对象的build方法

你可能感兴趣的:(dom4j)