xml_dom解析

Posted yue-170305

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xml_dom解析相关的知识,希望对你有一定的参考价值。

 DOM解析(一)
采用dom解析,会将xml文档全部载入到内存当中,然后将xml文档中的所有内容转换为tree上的节点(对象)。

优点:
可以随机解析
可以修改文件
可以创建xml文件
缺点:
适合解析小文件,对内存要求高

1.1.1 输出xml 各个 关键信息(使用dom解析)

package xml2;

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

public class domTest 
	public static void main(String[] args) throws Exception 
		// 创建工厂
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = factory.newDocumentBuilder();
		Document document = builder.parse("src/xml2/desk.xml");
		//
		NodeList list = document.getElementsByTagName("disk");
		for (int i = 0; i < list.getLength(); i++) 
			Node node = list.item(i);// 有两个disk ,通过索引可以获取任意一个disk
			// 打印node节点中的属性节节点的name ,和value ,同时,属性也有可能为多个,所以返回的还是一个集合。
			System.out.println(
					node.getAttributes().item(0).getNodeName() + ":" + node.getAttributes().item(0).getNodeValue());
			NodeList list2 = node.getChildNodes();
			// 因为disk标签得子节点有空格,它没有子节点,所以不考虑这个得话,会出先空指针异常
			// 解决这问题得话,直接判段一下子节点得type值是否为1(元素节点)
			for (int j = 0; j < list2.getLength(); j++) 
				if (list2.item(j).getNodeType() == 1) 
					System.out.println(list2.item(j).getNodeName() + ":" + list2.item(j).getTextContent());
				
			
		

		// Node attributes = node.getAttributes().item(0);
//		System.out.println(attributes);
//		System.out.println(attributes.getNodeName());
//		System.out.println(attributes.getNodeType());
//		System.out.println(attributes.getNodeValue());

	



<?xml version="1.0" encoding="UTF-8"?>
<disks>
	<disk name=‘c盘‘>
		<size>10G</size>
		<directory>100</directory>
		<file>200</file>
	</disk>

	<disk name=‘d盘‘>
		<size>20G</size>
		<directory>200</directory>
		<file>3000</file>
	</disk>
</disks>

 

以上是关于xml_dom解析的主要内容,如果未能解决你的问题,请参考以下文章

Java---XML的解析-DOM解析

使用DOM解析器解析XML文件 学习笔记

XML 解析---dom解析和sax解析

XML解析之DOM解析技术案例

DOM解析器解析XML文档

xml解析之----DOM解析