以下为简单的dom解析xml示例,写在此处的主要目的为备忘
package com.linming.dom.xml;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
* @author lin ming
* @create_date 2012-3-6 下午09:31:46
* @description
*/
public class DomDemo {
public static void main(String[] args){
try {
// 取得DocumentBuilderFactory类的对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 取得DocumentBulder类的对象
DocumentBuilder builder = factory.newDocumentBuilder();
try {
Document document = builder.parse(new File("E:" + File.separator + "test.xml"));
/*// 取得name节点, 以下为取得单个的节点
NodeList nodeList = document.getElementsByTagName("name");
System.out.println("name=" + nodeList.item(0).getFirstChild().getNodeValue());*/
//以下为取得所有的addressLinked,并遍历取出每个name与email
NodeList nodeList = document.getElementsByTagName("linked");
for(int i=0; i<nodeList.getLength(); i++){
Element e = (Element) nodeList.item(i);
System.out.println("name:" + e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
System.out.println("email:" + e.getElementsByTagName("email").item(0).getFirstChild().getNodeValue());
}
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
}
}
以下文件的路径为:E:\test.xml
<?xml version="1.0" encoding="UTF-8" ?>
<addressLinked>
<linked>
<name>lin ming</name>
<email>linming@126.com<email>
</linked>
<linked>
<name>lin min</name>
<email>linmin@126.com<email>
</linked>
</addressLinked>