1.创建一个DocumentBuilderFactory的实例dbf
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.parse(fileName);4.获取根节点              Element root = doc.getDocumentElement(); 5.获取根节点
root.getNodeName();
6.获取子节点
NodeList employeeInfo = root.getChildNodes();
7.遍历子节点
for (int j = 0; j < employeeInfo.getLength(); j++) 
8.获取节点的名称和节点得值
employeeInfo.item(j).getNodeName();
employeeInfo.item(j).getNodeValue();
创建一个接口
XmlInterface.java
public interface XmlInterface {        /**         * 建立XML文档         * @param fileName 文件全路径名称         */        public void createXml(String fileName);         /**         * 解析XML文档         * @param fileName 文件全路径名称         */        public void parserXml(String fileName); } | 
接口实现
XmlImpl.java
package com.test.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 XmlImpl implements XmlInterface{    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 class Main {    public static void main(String args[]){        XmlImpl dd=new XmlImpl();        String str="D:/grade.xml";        dd.init();        dd.createXml(str);    //创建xml        dd.parserXml(str);    //读取xml    }} | 
结果
生成xml
<?xml version="1.0" encoding="GB2312"?>
<scores>
<employee>
<name>wangchenyang</name>
<sex>m</sex>
<age>26</age>
</employee>
</scores>
读取xml
生成XML文件成功!#text:name:wangchenyang#text:sex:m#text:age:26#text:解析完毕 | 
原文:http://www.cnblogs.com/handsome1013/p/5149047.html