DOM解析XML

首先附上自己的代码:

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的各项操作了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值