使用DOM解析XML(一)

需要解析的XML文档
<?xml version="1.0"?>
<PEOPLE>
	<PERSON PERSONID="E01">
		<NAME>Tony Blair</NAME>
		<ADDRESS>10 Downing Street, London, UK</ADDRESS>
		<TEL>(061) 98765</TEL>
		<FAX>(061) 98765</FAX>
		<EMAIL>blair@everywhere.com</EMAIL>
	</PERSON>
	<PERSON PERSONID="E02">
		<NAME>Bill Clinton</NAME>
		<ADDRESS>White House, USA</ADDRESS>
		<TEL>(001) 6400 98765</TEL>
		<FAX>(001) 6400 98765</FAX>
		<EMAIL>bill@everywhere.com</EMAIL>
	</PERSON>
	<PERSON PERSONID="E03">
		<NAME>Tom Cruise</NAME>
		<ADDRESS>57 Jumbo Street, New York, USA</ADDRESS>
		<TEL>(001) 4500 67859</TEL>
		<FAX>(001) 4500 67859</FAX>
		<EMAIL>cruise@everywhere.com</EMAIL>
	</PERSON>
	<PERSON PERSONID="E04">
		<NAME>Linda Goodman</NAME>
		<ADDRESS>78 Crax Lane, London, UK</ADDRESS>
		<TEL>(061) 54 56789</TEL>
		<FAX>(061) 54 56789</FAX>
		<EMAIL>linda@everywhere.com</EMAIL>
	</PERSON>
</PEOPLE>

解析代码

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

/**
 * 根结点(document):代表的是XML文档本身,是解析XML文档的入口
 * 根元素结点(root):表示XML文档的根元素,它对应于XML文档的Root.
 */
public class Demo {
	
	public static void main(String[] args) {
		//1.获得DOM解析器工厂-->用于创建具体的解析器
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		try {
			//2.获得具体的DOM解析器
			DocumentBuilder builder = dbf.newDocumentBuilder();
			
			//3.解析一个XML文档,获得Document对象(根结点)
			Document document = builder.parse(new File("candidate.xml"));	//candidate.xml放在项目目录下
			
			
			NodeList nodeLists = document.getElementsByTagName("PERSON");
//			int length = nodeLists.getLength();
//			System.out.println(length);
			
			for(int i = 0; i < nodeLists.getLength(); i++){
				Element element = (Element)nodeLists.item(i);
				
				String name = element.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue();
				System.out.println("名字 = " + name);
				
				String addrss = element.getElementsByTagName("ADDRESS").item(0).getFirstChild().getNodeValue();
				System.out.println("地址 = " + addrss);
				
				String tel = element.getElementsByTagName("TEL").item(0).getFirstChild().getNodeValue();
				System.out.println("电话 = " + tel);
				
				String fax = element.getElementsByTagName("FAX").item(0).getFirstChild().getNodeValue();
				System.out.println("传真 = " + fax);
				
				String email = element.getElementsByTagName("EMAIL").item(0).getFirstChild().getNodeValue();
				System.out.println("邮箱 = " + email);
				
				System.out.println("-------------------------------------");
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
/**
 * 根结点(document):代表的是XML文档本身,是解析XML文档的入口
 * 根元素结点(root):表示XML文档的根元素,它对应于XML文档的Root.
 */


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值