Java中Dom解析xml文档

xml文档

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
	<book id="1">
		<name>你好</name>
		<author>李四</author>
		<price>80</price>
	</book>
	<book id="2">
		<name>你好2</name>
		<author>李四2</author>
		<price>81</price>
	</book>
</bookstore>

java文件

package cn.lonecloud.xml;

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

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

public class DomXML {

	public static void main(String[] args) throws Exception {
		//先建立一个DocumentBuilderFactory对象
		DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
		//建立一个buildfactory对象
		DocumentBuilder db=dbf.newDocumentBuilder();
		//获取xml文件
		Document document=db.parse("demo.xml");
		//获取root树的Element
		Element e1=document.getDocumentElement();
		//获取子元素的子节点
		if (e1!=null) {
			NodeList list=e1.getChildNodes();
			if (list!=null) {
				//遍历书子节点
				for (int i = 0; i < list.getLength(); i++) {
					Node node=list.item(i);
					if (node!=null) {
						NodeList child=node.getChildNodes();
						for (int j = 0; j < child.getLength(); j++) {
							Node n=child.item(j);
							//获取属性名称文本
							if (n.getNodeType()==Node.ELEMENT_NODE) {
								//获取节点名称
								System.out.println(n.getNodeName());
								//获取这个节点值
								System.out.println(n.getFirstChild().getNodeValue());
								//获取节点的的值下的所有文本
								System.out.println(n.getTextContent());
							}
						}
					}
				}
			}
		}
	}

}

  

时间: 2024-12-22 21:31:41

Java中Dom解析xml文档的相关文章

org.w3c.dom(java dom)解析XML文档

位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会不理想 首先来了解点Java DOM 的 API:1.解析器工厂类:DocumentBuilderFactory 创建的方法:DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 2.解析器:DocumentBuilder 创建方法:通过解析器工厂类来获得 DocumentBu

java中dom解析xml

从xml文件中得到某个节点中value的值,条件是已知道某一个子节点的参数,如下一片段, 已知 <name> 为 “Motor hand”的值,想从整个xml文件中得到此子节点的<value>所对应的值. “<field><name>Motor hand</name><value>Right</value><type>Dotted</type></field>” 此方法是dom 遍历,获

使用DOM解析XML文档

1.创建XML文档 <?xml version="1.0" encoding="UTF-8"?> <Students>     <student stuno="1001">       <name>张三</name>       <gender>男</gender>       <scores>100</scores>     </s

Java中Dom解析xml的一个实例

package com.xd.test; 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; public class test { public static void main(String[]

DOM解析XML文档

package com.softeem.xml.util; import java.io.File; import java.util.HashMap; import java.util.Map; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.*; import com.softeem.xml.dto.ClassDTO; i

浅谈用java解析xml文档(二)

上一文中总结了dom解析xml文档的方式,本文开始总结使用SAX解析xml 的方式及它的优缺点! SAX(Simple API for XML),是指一种接口,或者一个软件包. 首先我们应该知道SAX解析和dom解析的区别: dom是树结构解析,易于理解和开发,它可以随意访问文件所在的节点位置,易于修改,删除和查询.但对于dom文档过大时,则会解析较慢. 而SAX解析是事件推动型,顺序读取文件的节点,且只能读取文档的内容,不能对文档的内容进行修噶,对文档的大小没有过多的限制,但开大复杂度较高,

四种生成和解析XML文档的方法详解

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 一.介绍及优缺点分析 1. DOM(Document Object Model) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的. [优点]      ①允许应用

艺多不压身 -- 四种生成和解析XML文档的方法详解

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SAX: JDOM: DOM4J: 一.介绍及优缺点分析 1. DOM(Document Object Model) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然

四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例) 众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SAX:http://sourceforge.net/projects/sax/ JDOM:http://jdom.org/downloads/index.html DOM4J:http://sourceforge.