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();