`

用 DOM 读取一个 XML 文档(二)

XML 
阅读更多
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<学生名册>
	<学生 学号="1">
		<姓名>张三</姓名>
		<!-- haha -->
		<性别>男</性别>
		<年龄>20</年龄>
	</学生>
	<学生 学号="2">
		<姓名>李四</姓名>
		<性别>女</性别>
		<年龄>19</年龄>
	</学生>
	<学生 学号="3">
		<姓名>王五</姓名>
		<性别>男</性别>
		<年龄>21</年龄>
	</学生>
</学生名册>



package com.syh.xml.dom;

import java.io.File;

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

public class DomTest3 {

	public static void main(String[] args) throws Exception {
		
	
	DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance() ;
	
	DocumentBuilder db = dbf.newDocumentBuilder() ;
	
	Document doc = db.parse(new File("student.xml")) ;
	
//	System.out.println(doc.getXmlEncoding()); 
//	System.out.println(doc.getXmlVersion());
//	System.out.println(doc.getXmlStandalone());
	
	//获得 XML 文档的根元素节点
	Element rootEle = doc.getDocumentElement() ;
	System.out.println(rootEle.getTagName());
	
	//这里一定要注意一下空格!因为空格也是属于节点的孩子的组成部分。
	NodeList list = rootEle.getChildNodes() ;
	System.out.println(list.getLength());
	
	for(int i = 0 ; i < list.getLength() ; i ++ ) {
		System.out.println(list.item(i).getNodeName());
	}
	
	System.out.println("----------------节点的类型和节点值-----------------");
	
	for(int i = 0 ; i < list.getLength() ;  i ++) {
		
		Node n = list.item(i) ;
		
		//打印节点的类型和节点值
		System.out.println(n.getNodeType() + " : " + n.getNodeValue());
		
	}
	
	System.out.println("----------------打印所有节点的文本(不包括节点的属性!但是包括空白!因为空白也是属于文本的)-----------------");
	
	for(int i = 0 ; i < list.getLength() ; i ++ ) {
		Node n = list.item(i) ;
		
		System.out.println(n.getTextContent()); 
	}
	
	System.out.println("-----------------拿到属性----------------");
	
	NodeList nodeList = doc.getElementsByTagName("学生") ;
	
	for(int i = 0 ; i < nodeList.getLength() ; i ++) {
		
		NamedNodeMap nnm = nodeList.item(i).getAttributes() ;
		
		String attrName = nnm.item(0).getNodeName() ;
		System.out.print(attrName);
		
		System.out.print(" = ");
		
		String attrValue = nnm.item(0).getNodeValue() ;
		System.out.print(attrValue);
		
		System.out.println();
		
	}
	
	}
}



控制台上出现的效果:

学生名册
7
#text
学生
#text
学生
#text
学生
#text
----------------节点的类型和节点值-----------------
3 : 
	
1 : null
3 : 
	
1 : null
3 : 
	
1 : null
3 : 

----------------打印所有节点的文本(不包括节点的属性!但是包括空白!因为空白也是属于文本的)-----------------

	

		张三
		
		男
		20
	

	

		李四
		女
		19
	

	

		王五
		男
		21
	


-----------------拿到属性----------------
学号 = 1
学号 = 2
学号 = 3



分享到:
评论

相关推荐

    dom4j读写xml文档实例

    要使用DOM4J读取XML文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...

    QT下DOM读/写xml文档

    5. ** 读取XML **:使用`QFile`打开XML文件,然后用`QDomDocument::setContent()`或`QDomDocument::parse()`加载文件内容到DOM中。 6. ** 写入XML **:创建或修改DOM后,使用`QDomDocument::toString()`生成XML字符...

    【Qt】DOM读取XML文档.rar

    本教程主要关注使用Qt的DOM(Document Object Model)模型来读取XML文档。 DOM是一种树型结构,它将XML文档视为一系列可编程的对象。在Qt中,我们使用`QDomDocument`类来表示整个XML文档,而`QDomElement`、`...

    DOM4J读取XML

    DOM4J是一个轻量级、高性能且易于使用的Java库,用于处理XML文档。它提供了类似于DOM、SAX和JDOM的API,但又在其基础上进行了优化,使得在读取、写入、查询和修改XML文档时更加高效与便捷。本文将详细介绍如何使用...

    使用DOM读取XML文件

    本文将深入探讨如何使用DOM读取XML文件,并结合提供的标签“源码”和“工具”,提供实用的代码示例和相关知识。 首先,理解DOM的基本概念。DOM将XML文档看作一个由节点组成的树形结构,其中根节点代表整个文档,而...

    dom读取xml与写入xml

    读取XML文件使用DOM时,通常分为以下几个步骤: 1. 加载XML文件:使用特定的API(如JavaScript中的`XMLHttpRequest`或Java的`DocumentBuilderFactory`)加载XML文件到内存中。 2. 解析XML:调用解析器(如Java的`...

    DOM读取XML文件

    DOM解析器将整个XML文件加载到内存中,形成一个树形结构,允许开发者通过节点操作来访问和修改XML文档。这种方式的优点在于方便、直观,但缺点是占用内存较大,不适用于处理大型XML文件。 首先,我们需要了解XML的...

    Java用DOM4J读取XML

    本篇将通过一个示例来讲解如何使用DOM4J读取XML文件。 #### 二、DOM4J简介 **DOM4J**(Document Object Model for Java)是一个基于Java语言的XML API,由**Red Hat**维护。它提供了一个简洁高效的API来处理XML...

    使用DOM解析XML文档

    文档对象模型 节点和节点树 使用DOM加载XML文档 使用DOM访问、创建和修改节点

    利用 dom4j 解析 xml 文档

    **读取XML文档:** 1. **添加依赖**:在项目中引入dom4j库,如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;dom4j &lt;artifactId&gt;dom4j &lt;version&gt;2.1.3 ``` 2. **解析XML**:使用`...

    读取XML文件的四种方法

    使用DOM4J方法读取XML文件,需要创建SAXReader对象,读取XML文件得到Document对象,然后使用Element对象的elementIterator方法获取指定标签的迭代器,遍历迭代器进行数据提取。 优点:DOM4J方法提供了高效的XML解析...

    dom4j-jar与dom4j解析xml文档介绍

    "dom4j-jar与dom4j解析xml文档介绍" 这个标题告诉我们,我们将探讨的是一个关于dom4j库的jar文件,以及如何使用这个库来解析XML文档。dom4j是一个Java库,它提供了丰富的API用于处理XML、HTML和DOM文档。这里的"jar...

    DOM4J 读取xml字符串

    **DOM4J 读取XML字符串** DOM4J 是一个非常强大的 Java XML API,它提供了丰富的功能,使得处理 XML 文件变得更加简单。DOM4J 的设计理念是简洁、灵活且高性能,它支持 SAX 和 DOM 解析,并提供了面向对象的接口。...

    DBMS_XMLDOM DBMS_XMLPARSER DBMS_XMLQUERY 文档

    例如,你可以使用DBMS_XMLDOM.newDoc()来创建一个新的XML文档对象,使用DBMS_XMLDOM.parseXML()将XML字符串解析成DOM树,然后通过DBMS_XMLDOM.getElementsByTagName()等方法对DOM树进行查询和操作。 DBMS_XMLPARSER...

    Java使用sax、dom、dom4j解析xml文档

    DOM(Document Object Model)将整个XML文档加载到一个树形结构中,称为DOM树。这种解析方式允许通过节点遍历和访问整个文档,但对内存需求较高,尤其在处理大文件时。DOM解析器的优点在于提供了一种灵活且易于使用...

    XMLDom.zip_XML文档

    XML文档对象模型(DOM,Document Object Model)是处理XML文档的标准API,它将XML文档视为一个可编程的对象结构,允许开发人员通过编程方式对XML文档进行创建、查询、更新和操作。 XML DOM定义了一个树形结构,其中...

    dom4j解析XML文档.ppt

    7. 读取XML文档: ```java SAXReader reader = new SAXReader(); Document document = reader.read(new File("path_to_xml_file.xml")); ``` 8. 写入XML文档: ```java XMLWriter writer = new XMLWriter(new...

Global site tag (gtag.js) - Google Analytics