java通过dom创建和解析xml

import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.PrintWriter; 
import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.parsers.ParserConfigurationException; 
import javax.xml.transform.OutputKeys; 
import javax.xml.transform.Transformer; 
import javax.xml.transform.TransformerConfigurationException; 
import javax.xml.transform.TransformerException; 
import javax.xml.transform.TransformerFactory; 
import javax.xml.transform.dom.DOMSource; 
import javax.xml.transform.stream.StreamResult; 
import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.Node; 
import org.w3c.dom.NodeList; 
import org.xml.sax.SAXException; 


public class MyXmlTest{ 
    private Document document; 
  
    public void init() { 
        try { 
            DocumentBuilderFactory factory = DocumentBuilderFactory 
                    .newInstance(); 
            DocumentBuilder builder = factory.newDocumentBuilder(); 
            this.document = builder.newDocument(); 
        } catch (ParserConfigurationException e) { 
            System.out.println(e.getMessage()); 
        } 
    } 
  
    public void createXml(String fileName) { 
        Element root = this.document.createElement("scores");  
        this.document.appendChild(root);  
        Element employee = this.document.createElement("employee");  
        Element name = this.document.createElement("name");  
        name.appendChild(this.document.createTextNode("wangchenyang"));  
        employee.appendChild(name);  
        Element sex = this.document.createElement("sex");  
        sex.appendChild(this.document.createTextNode("m"));  
        employee.appendChild(sex);  
        Element age = this.document.createElement("age");  
        age.appendChild(this.document.createTextNode("26"));  
        employee.appendChild(age);  
        root.appendChild(employee);  
        TransformerFactory tf = TransformerFactory.newInstance(); 
        try { 
            Transformer transformer = tf.newTransformer(); 
            DOMSource source = new DOMSource(document); 
            transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312"); 
            transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
            PrintWriter pw = new PrintWriter(new FileOutputStream(fileName)); 
            StreamResult result = new StreamResult(pw); 
            transformer.transform(source, result); 
            System.out.println("生成XML文件成功!"); 
        } catch (TransformerConfigurationException e) { 
            System.out.println(e.getMessage()); 
        } catch (IllegalArgumentException e) { 
            System.out.println(e.getMessage()); 
        } catch (FileNotFoundException e) { 
            System.out.println(e.getMessage()); 
        } catch (TransformerException e) { 
            System.out.println(e.getMessage()); 
        } 
    } 
  
    public void parserXml(String fileName) { 
        try { 
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
            DocumentBuilder db = dbf.newDocumentBuilder(); 
            Document document = db.parse(fileName); 
              
            NodeList employees = document.getChildNodes(); 
            for (int i = 0; i < employees.getLength(); i++) { 
                Node employee = employees.item(i); 
                NodeList employeeInfo = employee.getChildNodes(); 
                for (int j = 0; j < employeeInfo.getLength(); j++) { 
                    Node node = employeeInfo.item(j); 
                    NodeList employeeMeta = node.getChildNodes(); 
                    for (int k = 0; k < employeeMeta.getLength(); k++) { 
                        System.out.println(employeeMeta.item(k).getNodeName() 
                                + ":" + employeeMeta.item(k).getTextContent()); 
                    } 
                } 
            } 
            System.out.println("解析完毕"); 
        } catch (FileNotFoundException e) { 
            System.out.println(e.getMessage()); 
        } catch (ParserConfigurationException e) { 
            System.out.println(e.getMessage()); 
        } catch (SAXException e) { 
            System.out.println(e.getMessage()); 
        } catch (IOException e) { 
            System.out.println(e.getMessage()); 
        } 
    } 
//测试

  
    public static void main(String args[]){ 
    	MyXmlTest dd=new MyXmlTest(); 
        String str="D:/grade.xml"; 
        dd.init(); 
        dd.createXml(str);    //创建xml 
        dd.parserXml(str);    //读取xml 
    } 
} 

 

posted @ 2013-02-28 09:35  流星焱雨  阅读(322)  评论(0编辑  收藏  举报