Dom4j解析xml

读:
①:通过流的方式获得XML文件
②:创建文档对象
③:获得根节点
④:层层遍历,封装为POJO类,转化为集合
写:
①:创建文档对象
②:创建根节点
③:根节点依次添加子节点,设置节点属性等等
④:通过文件流写XML文件
导入Jar,使用dom4j-1.6.1.jar



f://a.xml:
<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<jimo>  
    <book id="b001">  
        <booktitle>史记</booktitle>  
       <author>司马迁</author>  
        <price>199.00</price>  
    </book>  
   <book id="b002">  
       <booktitle>平凡的世界</booktitle>  
       <author>路遥</author>  
       <price>56.80</price>  
    </book>  
   <book id="b003">  
        <booktitle>西方经济学</booktitle>  
       <author>保罗.萨缪而森</author>  
       <price>98.80</price>  
    </book>  
</jimo>  


读xml
package test;

import java.io.File;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class GeReadXml {  
	public void parserXml(String fileName) {   
		// 文件对象   
		File input = new File(fileName);  
		// SAXReadr对象   
		SAXReader saxr = new SAXReader();  
		try {   
			// 调用SAXReader的read方法将文件对象传入进去即可获得文档对象   
			Document document = saxr.read(input);  
			// 获得文档的根元素   
			Element rootElement = document.getRootElement();  
			// 遍历一级节点 使用迭代的方法   
			for (Iterator i = rootElement.elementIterator(); i.hasNext();)

			{  
				// 返回下一个迭代元素   
				Element book = (Element) i.next();  
				// 调用 Element元素.attributeValue 方法就可以获得节点的属性     
				System.out.println("哥的ID是" + book.attributeValue("id"));  
                // 遍历一级节点下的所有子节点                  
				for (Iterator j = book.elementIterator(); j.hasNext();) {  
                // 返回下一个迭代元素
					Element node = (Element) j.next();  
	                System.out.println("键:" + node.getName());                    
	                System.out.println("值:" + node.getText());               				
				}             				
			}        
		} catch 
		(Exception e) {  	            
			e.printStackTrace();  
		}  	    
	}  	  	    
	public static void main(String[] args) {  
		GeReadXml g = new GeReadXml();        
		g.parserXml("F://a.xml");   
	}  
}  


写xml
package test;

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;

public class GeWriteXml {  
    public void createXml(String fileName) {  
        // 通过DocumentHelper 这个文档帮助类来创建文档对象   
        Document document = DocumentHelper.createDocument();  
        // 创建元素对象 这个用于充当根元素 第一次addElement的就是根元素   
        Element employees = document.addElement("employees");  
        // 创建一个子元素对象   
        Element employee = employees.addElement("employee");  
  
        // 给子元素设置值   
        Element name = employee.addElement("name");  
        name.setText("cwt123");  
        Element sex = employee.addElement("sex");  
        sex.setText("man");  
        Element age = employee.addElement("age");  
        age.setText("19");  
        try {  
            // 创建写入字符流对象 fileName是路径名称   
            Writer fileWriter = new FileWriter(fileName);  
            // 创建dom4j的写入器 将字符流对象放进去   
            XMLWriter xmlWriter = new XMLWriter(fileWriter);  
            // 调用写入器的write方法就可以创建xml文件成功   
            xmlWriter.write(document);  
            // 关闭写入器   
            xmlWriter.close();  
        } catch (IOException e) {  
            System.out.println(e.getMessage());  
        }  
  
    }  
  
    public static void main(String[] args) {  
        GeWriteXml gwx = new GeWriteXml();  
        gwx.createXml("f://employee.xml");  
        System.out.println("Ge Done!");  
    }  
}  


引自: http://blog.csdn.net/chenweitang123/article/details/6230435
DOM4J完整教程: http://blog.csdn.net/chenweitang123/article/details/6255108

你可能感兴趣的:(xml,dom4j)