码迷,mamicode.com
首页 > 其他好文 > 详细

xml_dom解析

时间:2019-09-05 00:31:09      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:import   val   w3c   element   src   public   获取   getattr   instance   

 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解析

标签:import   val   w3c   element   src   public   获取   getattr   instance   

原文地址:https://www.cnblogs.com/yue-170305/p/11462526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!