会编程的皮卡丘  

Dom4j 封装DOM的解析XML文件的方法:

 1 List<Book> bookList=new ArrayList<Book>();
 2             //1.1  建立一个解析器工厂: 
 3             DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
 4             //1.2  获得一个DocumentBuilder对象,这个对象代表了具体的DOM解析器
 5             DocumentBuilder db = dbf.newDocumentBuilder();
 6             //1.3 将xml文件加载到内存中,得到表示整个文档的Document对象
 7             InputStream inStream=DomParser.class.getClassLoader().getResourceAsStream("book.xml");
 8             org.w3c.dom.Document w3cdoc=db.parse(inStream);
 9             //2.创建一个DOMReader
10             DOMReader domReader=new DOMReader();
11             //3.将org.w3c.dom.Document转成org.dom4j.Document
12             org.dom4j.Document doc=domReader.read(w3cdoc);
13             Element ele=doc.getRootElement();//3.获得根节点
14             //4.使用迭代器对子节点进行迭代
15             Iterator<Element> it=ele.elementIterator();
16             while(it.hasNext()){
17                 Book book=new Book();
18                 Element bookEle=it.next();//取出当前的迭代的元素
19                 book.setId(bookEle.attributeValue("id"));//attributeValue:根据属性名获得属性值
20                 book.setName(bookEle.element("name").getText());
21                 book.setAuthor(bookEle.elementText("author"));
22                 bookList.add(book);

 

Dom4j 封装SAX的解析XML文件的方法:

 1        List<Book> bookList=new ArrayList<Book>();
 2             InputStream inStream=DomParser.class.getClassLoader().getResourceAsStream("book.xml");
 3             SAXReader saxReader=new SAXReader();//1. 创建sax解析器
 4             org.dom4j.Document doc=saxReader.read(inStream);//2. 获得org.dom4j.Document文档对象
 5             Element ele=doc.getRootElement();//3.获得根节点
 6             //4.使用迭代器对子节点进行迭代
 7             Iterator<Element> it=ele.elementIterator();
 8             while(it.hasNext()){
 9                 Book book=new Book();
10                 Element bookEle=it.next();//取出当前的迭代的元素
11                 book.setId(bookEle.attributeValue("id"));//attributeValue:根据属性名获得属性值
12                 book.setName(bookEle.element("name").getText());
13                 book.setAuthor(bookEle.elementText("author"));
14                 bookList.add(book);

 

Dom4j 生成XML文件

 

 1 import java.io.FileWriter;
 2 
 3 import org.dom4j.Document;
 4 import org.dom4j.DocumentHelper;
 5 import org.dom4j.Element;
 6 import org.dom4j.io.OutputFormat;
 7 import org.dom4j.io.XMLWriter;
 8 /**
 9  * dom4j 
10  * @author bwf
11  *
12  */
13 public class TestDom4j2 {
14     public static void main(String[] args) throws Exception {
15         
16         //创建Document
17         Document dom=DocumentHelper.createDocument();
18         //创建根节点
19         Element root=dom.addElement("我爱吃水果");
20         //创建元素,并附加属性 
21         Element item1=root.addElement("水果").addAttribute("编号", "001");
22         Element name1=item1.addElement("名字").addText("苹果");
23         
24         Element item2=root.addElement("水果").addAttribute("编号", "002");
25         Element name2=item2.addElement("名字").addText("柚子");
26         
27         Element item3=root.addElement("水果").addAttribute("编号", "003");
28         Element name3=item3.addElement("名字").addText("草莓");
29         
30         //美化格式
31         OutputFormat format = OutputFormat.createPrettyPrint();
32         //文件
33         FileWriter w=new FileWriter("c:/Users/bwf/Desktop/food.xml");
34         //输出流
35         XMLWriter writer =new XMLWriter(w,format);    
36         
37         writer.write(dom);
38         writer.close();
39     }
40 }

 

posted on 2018-01-09 20:42  会编程的皮卡丘  阅读(934)  评论(0编辑  收藏  举报