lDom4j是一个简单、灵活的开放源代码的库。Dom4j是由早期开发JDOM的人分离出来而后独立开发的。与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性
lDom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点。现在很多软件采用的Dom4j,例如Hibernate,包括sun公司自己的JAXM也用了Dom4j
l使用Dom4j开发,需下载dom4j相应的jar文件
DOM的操作
获取
获取document的三种方式
1,读取指定的文件
SAXReader reader = new SAXReader();
Document document = reader.read("data.xml");
2,将字符串转换成documen对象
String part = "<name></name><title></title>";
Document parseText = DocumentHelper.parseText(string);
3,新建document
Document document2 = DocumentHelper.createDocument();
保存
//创建输出文件的位置
FileOutputStream out = new FileOutputStream("books.dom4j.xml");
XMLWriter writer = new XMLWriter(out);
//添加内容对象
writer.write(document);
//关闭流
writer.close();
API
获得根元素
Element rootElement = document.getRootElement();
获得所有子元素
List list = rootElement.elements();
获得指定的子元素
Element priceElement = bookElement.element("price");
* 获得指定属性的元素
Node bookNode = document.selectSingleNode("//book[@id='b002']");
* 设置文本
priceElement.setText("100");
* 获得节点的名称
child.getName()
* 获得指定名称的属性值
String id = bookElement.attributeValue("id");
* 获得指定属性的元素
Node bookNode = document.selectSingleNode("//book[@id='b002']");
* 设置文本
priceElement.setText("100");
* 获得节点的名称
child.getName()
* 获得指定名称的属性值
String id = bookElement.attributeValue("id");
JAXP-DOM解析xml
工厂 --> 解析器 --> 文档
更新
JAXP-SAX解析xml
事件驱动
默认空实现类
lDom4j解析xml
解析器 -->文档 --> 根元素
保存
Xpath查询