Dom4j 封裝DOM的解析XML文件的方法:java
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文件的方法:dom
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文件ui
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 }