XML文件的读写,反射机制---9,10
一.XML文件的读写
1.有4种方式:Dom,XAS,JDOM,DOM4J,目前DOM4J比较常用。
/**
* DOM4J方式生成xml文档
*/
private void DOM4JCreateXML(){
org.dom4j.Document document = DocumentHelper.createDocument();
org.dom4j.Element bookstore = document.addElement("bookstore");
org.dom4j.Element book = bookstore.addElement("book");
book.addAttribute("id", "1");
org.dom4j.Element name = book.addElement("name");
name.setText("小王子");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
File file = new File("books4.xml");
XMLWriter writer;
try {
writer = new XMLWriter(new FileOutputStream(file), format);
writer.setEscapeText(false);
writer.write(document);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* DOM4J方式解析xml文档
*/
public void dom4jXmlParser(){
ArrayList<Book> booksList = new ArrayList<Book>();
SAXReader reader =null;
/**
* 创建SAXReader的对象reader
*/
reader = new SAXReader();
try {
/**
* 通过reader对象的read方法加载Books.xml,获取document对象
*/
org.dom4j.Document document = reader.read(new File("books.xml"));
/**
* 通过document对象的getRootElement方法,获取根节点<bookstore>
*/
org.dom4j.Element bookStore = document.getRootElement();
/**
* 同归创建List型bookeles对象,
*/
List<org.dom4j.Element> bookEles = bookStore.elements();
for (org.dom4j.Element book : bookEles) {
/**
* 创建Book的bookEntity对象
*/
Book bookEntity = new Book();
/**
* 通过dom4j的attributes方法,获得属性
*/
List<org.dom4j.Attribute> boo