zoukankan      html  css  js  c++  java
  • Dom4j 封装DOM和SAX 的方法

    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 }
  • 相关阅读:
    Oracle与MySQL的转化差异
    iOS 创建静态库文件时去掉当中的Symbols
    hdu4336 Card Collector 状态压缩dp
    随机森林——Random Forests
    OpenCV码源笔记——Decision Tree决策树
    海明距离hamming distance
    学习OpenCV——Surf简化版
    学习OpenCV——用OpenCv画漫画
    学习OpenCV——ORB简化版&Location加速版
    学习OpenCV——hand tracking手势跟踪
  • 原文地址:https://www.cnblogs.com/pikaqiucode/p/8253580.html
Copyright © 2011-2022 走看看