<?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文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...
5. ** 读取XML **:使用`QFile`打开XML文件,然后用`QDomDocument::setContent()`或`QDomDocument::parse()`加载文件内容到DOM中。 6. ** 写入XML **:创建或修改DOM后,使用`QDomDocument::toString()`生成XML字符...
本教程主要关注使用Qt的DOM(Document Object Model)模型来读取XML文档。 DOM是一种树型结构,它将XML文档视为一系列可编程的对象。在Qt中,我们使用`QDomDocument`类来表示整个XML文档,而`QDomElement`、`...
DOM4J是一个轻量级、高性能且易于使用的Java库,用于处理XML文档。它提供了类似于DOM、SAX和JDOM的API,但又在其基础上进行了优化,使得在读取、写入、查询和修改XML文档时更加高效与便捷。本文将详细介绍如何使用...
本文将深入探讨如何使用DOM读取XML文件,并结合提供的标签“源码”和“工具”,提供实用的代码示例和相关知识。 首先,理解DOM的基本概念。DOM将XML文档看作一个由节点组成的树形结构,其中根节点代表整个文档,而...
读取XML文件使用DOM时,通常分为以下几个步骤: 1. 加载XML文件:使用特定的API(如JavaScript中的`XMLHttpRequest`或Java的`DocumentBuilderFactory`)加载XML文件到内存中。 2. 解析XML:调用解析器(如Java的`...
DOM解析器将整个XML文件加载到内存中,形成一个树形结构,允许开发者通过节点操作来访问和修改XML文档。这种方式的优点在于方便、直观,但缺点是占用内存较大,不适用于处理大型XML文件。 首先,我们需要了解XML的...
本篇将通过一个示例来讲解如何使用DOM4J读取XML文件。 #### 二、DOM4J简介 **DOM4J**(Document Object Model for Java)是一个基于Java语言的XML API,由**Red Hat**维护。它提供了一个简洁高效的API来处理XML...
文档对象模型 节点和节点树 使用DOM加载XML文档 使用DOM访问、创建和修改节点
**读取XML文档:** 1. **添加依赖**:在项目中引入dom4j库,如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>dom4j <artifactId>dom4j <version>2.1.3 ``` 2. **解析XML**:使用`...
使用DOM4J方法读取XML文件,需要创建SAXReader对象,读取XML文件得到Document对象,然后使用Element对象的elementIterator方法获取指定标签的迭代器,遍历迭代器进行数据提取。 优点:DOM4J方法提供了高效的XML解析...
"dom4j-jar与dom4j解析xml文档介绍" 这个标题告诉我们,我们将探讨的是一个关于dom4j库的jar文件,以及如何使用这个库来解析XML文档。dom4j是一个Java库,它提供了丰富的API用于处理XML、HTML和DOM文档。这里的"jar...
**DOM4J 读取XML字符串** DOM4J 是一个非常强大的 Java XML API,它提供了丰富的功能,使得处理 XML 文件变得更加简单。DOM4J 的设计理念是简洁、灵活且高性能,它支持 SAX 和 DOM 解析,并提供了面向对象的接口。...
例如,你可以使用DBMS_XMLDOM.newDoc()来创建一个新的XML文档对象,使用DBMS_XMLDOM.parseXML()将XML字符串解析成DOM树,然后通过DBMS_XMLDOM.getElementsByTagName()等方法对DOM树进行查询和操作。 DBMS_XMLPARSER...
DOM(Document Object Model)将整个XML文档加载到一个树形结构中,称为DOM树。这种解析方式允许通过节点遍历和访问整个文档,但对内存需求较高,尤其在处理大文件时。DOM解析器的优点在于提供了一种灵活且易于使用...
XML文档对象模型(DOM,Document Object Model)是处理XML文档的标准API,它将XML文档视为一个可编程的对象结构,允许开发人员通过编程方式对XML文档进行创建、查询、更新和操作。 XML DOM定义了一个树形结构,其中...
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...