首先附上自己的代码:
package com.wch.dom;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DomJiexi {
@Test
public void test()
{
//创建解析XML的文档对象
File xmlFile = new File("E:/Eclipse1/DomXml/src/com/wch/xml/NewFile.xml");
//通过单例模式创建DocumentBuilderFactory对象
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
try {
//通过DocumentBuilderFactory对象创建DocumentBuilder对象
DocumentBuilder builder = builderFactory.newDocumentBuilder();
//解析文件
Document document = builder.parse(xmlFile);
//获得根元素
Element element = document.getDocumentElement();
System.out.println("根元素:"+element.getNodeName());
//获取根元素下的所有子节点
NodeList nodeList =element.getChildNodes();
//遍历这些节点
for (int i = 0; i < nodeList.getLength(); i++)
{
Node node = nodeList.item(i);
if("article".equals(node.getNodeName()))
{
System.out.println("\r\n找到第一篇文章,所属分类:"
+node.getAttributes().getNamedItem("category").getNodeValue());
NodeList nodeDetail = node.getChildNodes();
for (int j = 0; j < nodeDetail.getLength(); j++) {
Node detail = nodeDetail.item(j);
if("title".equals(detail.getNodeName()))
{
System.out.println("标题:"+detail.getTextContent());
}else if("author".equals(detail.getNodeName()))
{
System.out.println("作者:"+detail.getTextContent());
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出效果是:
根元素:articles
找到第一篇文章,所属分类:xml
标题:XML 概述
作者:janet
找到第一篇文章,所属分类:java
标题:Java书籍
作者:XXX君
现在对DOM解析XML进行总结:
第一步:创建File对象,加载xml文件
第二步:创建DocumentBuilderFactory对象
第三步:创建DocumentBuilder对象
第四步:用Document解析XML
第五步:通过Document的各种方法进行XML的各项操作了。