码迷,mamicode.com
首页 > 其他好文 > 详细

7. DOM4J 解析XML

时间:2015-06-09 23:37:56      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

DOM4J:
简介:
Dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点。现在很多软件采用的Dom4j,例如Hibernate,包括sun公司自己的JAXM也用了Dom4j。
 
获取Document对象:
SAXReader reader = new SAXReader();
Document doc = reader.read("book.xml");
 
元素节点:
根节点:Element root = doc.getRootElement();
子节点:Element user = node.element("节点名");
同名子节点集合:List nodes = node.elements("节点名");
遍历节点集合:相当于遍历 List 集合
for(Iterator it = root.elementIterator();it.hasNext()){
      Element ele  = (Element)it.next();
}
通过ID属性拿到元素:Element element = root.elementByID("class_1");
注意:在DOM解析时,用ID属性取元素,必须要保证DTD约束时此ID属性
为ID类型。任意取属性名,保证ID类型即可。
但是在DOM4j中,通过ID属性获取元素,不用保证必须是ID类型,
但是必须保证属性名是大写ID。
 
在某节点下添加子节点 :
Element newEle = node.addElement("节点名");
设置节点文本 :
element.setText("文本内容");
删除某节点 :
parentEle.remove(childEle);
添加一个CDATA节点 :
Element contentEle = node.addElement("content");
contextEle.addCDATA();
 
文本节点:
获取节点的文本 :String text =  node.getText(); 
设置节点文本内容 :element.setText("文本内容");
 
属性节点:
取得某节点下的一个属性节点 :
Attribute attr = node.attribute("属性名");
取得属性的值 :
String value = attr.getText();
遍历某节点下的所有属性 :
for(Iterator it = node.attributeIterator();it.hasNext();){
      Attribute attr  = (Attribute)it.next();
      String value = attr.getText();
}
添加属性节点 :
node.addAttribute("name","value");
设置属性的值 :
Attribute attr = node.attribute("属性名");
attr.setText("属性值");
删除某属性节点 :
Attribute attr = node.attribut("属性名");
node.remove(attr);
 
更新XML:
文档中全为英文,不设置编码,直接写入 :
XMLWriter writer = new XMLWriter(new  FileWriter("*.xml")); writer.write(document); writer.close();
 
文档中包含中文,先设置编码格式 :
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");       
XMLWriter writer = new XMLWriter(newFileWriter("*.xml"),format);
writer.write(document);
writer.close();

 

7. DOM4J 解析XML

标签:

原文地址:http://www.cnblogs.com/lee-hao/p/4564802.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!