dom4j解析xml

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
 ;

public class Dom4jDemo {

	public Dom4jDemo() throws IOException, DocumentException {
		//Document doc = createDoc();
		
		//System.out.println(doc.asXML());
		
		//printDoc(doc);
	
		Document doc = parse("address.xml");
		editDoc(doc);
		printDoc(doc);
		
		storeDoc(doc, "address.xml");
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			new Dom4jDemo();
		} catch (IOException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (DocumentException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}

	}
	
	public void printDoc(Document doc) throws IOException{
		
		OutputFormat format = OutputFormat.createPrettyPrint();
		
		XMLWriter writer = new XMLWriter(new OutputStreamWriter(System.out), format);
		
		writer.write(doc);
		
		writer.flush();
	}
	
	
	public Document createDoc(){
		Document doc=DocumentHelper.createDocument();
		
		doc.addComment("Create By 刘苍松");
		
		Element root = doc.addElement("address");
		Element name = root.addElement("name");
		name.addElement("title").addText("<b>Mr.</b>");
		name.addElement("first-name").addCDATA("<b>Robin</b>");
		name.addElement("last-name").addText("Liu");
		
		root.addElement("street").addText("北京海淀");
		root.addElement("city").addAttribute("province", "北京").addText("北京");
		
		root.addElement("post-code").addText("100080");
				
		return doc;
	}
	

	public Document parse(String xmlFile) throws FileNotFoundException, DocumentException{
		
		Document doc = null;
		
		SAXReader reader = new SAXReader();
		
		doc = reader.read(new FileInputStream(xmlFile));
		
		return doc;
		
	}

	public void editDoc(Document doc ){
		String xpath = "//post-code";
		
		Element element = (Element) doc.selectSingleNode(xpath);
		
		element.setText("100100");
		
	}
	
	public void storeDoc(Document doc, String fileName) throws IOException{
		
		OutputFormat format = OutputFormat.createPrettyPrint();
		
		XMLWriter writer = new XMLWriter(new FileOutputStream(fileName), format);
		
		writer.write(doc);
		
		writer.close();
		
	}

}

 

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