您的位置:首页 > 其它

XML解析之DOM

2014-06-24 13:32 295 查看
DOM解析操作步骤:

1、建立DocumentBuilderFactory:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

2、建立DocumentBuilder:

DocumentBuilder builder = factory.newDocumentBuilder();

3、建立Document:

Document doc = builder.parse("要读取的文件路径");

4、建立NodeList:

NodeList nl = doc.getElementsByTagName("读取节点");

5、进行XML信息读取。

-----------------------------------------------------------------------

要解析的XML文档:demo.xml

<?xml version="1.0" encoding="GBK"?>

<addresslist>

<linkman>

<name>小新</name>

<email>xiaoxin@163.com</email>

</linkman>

<linkman>

<name>小白</name>

<email>xiaobai@163.com</email>

</linkman>

</addresslist>

-----------------------------------------------------------------------

解析XML类:DOMDemo.java

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;

public class DOMDemo {

public static void main(String[] args) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try{
builder = factory.newDocumentBuilder();
}catch(ParserConfigurationException e){
e.printStackTrace();
}
Document doc = null;
try {
doc = builder.parse("d:"+File.separator+"demo.xml");
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
NodeList nl = doc.getElementsByTagName("linkman");
for(int x =0;x<nl.getLength();x++){
Element e =(Element) nl.item(x);
System.out.println("姓名:"+e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
System.out.println("邮箱:"+e.getElementsByTagName("email").item(0).getFirstChild().getNodeValue());
}
}

}
运行结果:

姓名:小新

邮箱:xiaoxin@163.com

姓名:小白

邮箱:xiaobai@163.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: