XML之DOM解析详解

参考文献:http://www.blogjava.net/zzzlyr/articles/314288.html

xmljava的解析方式有很多种,我们现在就先看一下关于XML解析中的DOM解析

DOM解析器的接口已经被W3C标准化了。org.w3.dom包包含了接口类型的定义,比如:

DocumentElement等。不同的提供者,比如Apache OrganizationIBM都编写了实现这些接口的DOM解析器。SUN公司的XML处理JAVA APIJava API for XML Processing,JAXP

库实际上可以插入到这些解析器中的任意一个中。但是SUN公司也在JAVA SDK中包含了自己的DOM解析器。在本文中我使用的就是JAVA的解析器。

1:要读入一个XML文档,首先要一个DocumentBuilder对象,可以这样得到:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

2:现在可以从文件中去读取一个XML文件了(文件路径:"F:""employees.xml"

    得到XML文件有三种方式:

1:通过文件方式读取:

File file=new File("F:""employees.xml");

Document doc=builder.parse(file);

2:通过一个URL方式读取:

 URL u=new URL("http://java.sun.com/index.html")

Document doc=builder.parse(u);

3:可以能过java IO 流的读取:

       FileInputStream inputstream = new FileInputStream(

                  "F:""employees.xml");

    Document doc=builder.parse(inputstream);

好了,有了基本的了解后,我们开始上代码:

<?xml version="1.0" encoding="GB2312"?>
<RESULT>
<VALUE>
   <NO>A1234</NO>
   <ADDR>四川省XX县XX镇XX路X段XX号</ADDR>
</VALUE>
<VALUE>
  <NO>B1234</NO>
   <ADDR>四川省XX市XX乡XX村XX组</ADDR>
</VALUE>
</RESULT>

然后是解析代码:

package www.yq.com.src;

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.NodeList;
import org.xml.sax.SAXException;

/** 
 * @Project     XMLSimpleTest 
 * @File        MyTest.java 
 * @Package     www.yq.com.src 
 * @Date        2016年1月25日 下午3:41:39 
 * @Author     
 * @email       
 */
public class MyTest {
	//DOM(JAXP Crimson解析器)
	public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
		File f = new File("E:\\qi.xml");
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		DocumentBuilder documentBuilder = dbf.newDocumentBuilder();
		Document document = documentBuilder.parse(f);
		NodeList nodeList = document.getElementsByTagName("VALUE");
		for (int i = 0; i < nodeList.getLength(); i++) {
			System.out.println("车牌号:"+document.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
			System.out.println("车牌地址:"+document.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue());
		}
	}

}

然后是运行结果:

162320_0O3i_2606929.png


好了,基本就是这样简单,无非是将文件加载进来,然后以树形式进行读取,删除,添加,这里要提一下的就是用到了工厂模式

转载于:https://my.oschina.net/u/2606929/blog/609032

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值