Dom4J:
<?xml version="1.0" encoding="GBK"?> <book-list> <book id="a"> <name>Java葵花宝典</name> <author>SUN</author> <price>50</price> </book> <book id="c"> <name>凤凰周刊</name> <author>凤凰</author> <price>30</price> </book> <book id="d"> <name>J.K.罗琳</name> <author/> <price>80</price> </book> </book-list>
package dom4j;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class Dom4J {
public static void main(String[] args) {
SAXReader reader = new SAXReader();
try {
/*Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("books");*/
Document doc = reader.read(new File("src/books.xml"));
Element root = doc.getRootElement();
//获取root元素下所有book子元素
List<Element> list = root.elements("book");
for(int i = 0; i <list.size(); i++){
Element ele = list.get(i);
System.out.println("id = " + ele.attributeValue("id"));
System.out.println("name = " + ele.elementText("name"));
System.out.println("author = " + ele.elementText("author"));
System.out.println("price = " + ele.elementText("price"));
System.out.println("**************");
}
createElement(doc, root, "src/books.xml");
} catch (DocumentException e) {
e.printStackTrace();
}
}
private static void createElement(Document doc,Element root, String path){
Element book = root.addElement("book");
book.addAttribute("id", "f");
Element name = book.addElement("name");
name.setText("盘龙");
Element author = book.addElement("author");
author.setText("我吃西红柿");
Element price = book.addElement("price");
price.setText("30.0");
// 制定输出的相关属性(编码方式, 格式)
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
format.setIndent(true);
format.setIndent(" ");
XMLWriter writer =null;
try {
writer = new XMLWriter(new FileWriter(path), format);
writer.write(doc);
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}