深入解析XML与DOM:从基础到实践,掌握XML数据存储与DOM模型应用

[id_1529153483]

深入解析XML与DOM:从基础到实践,掌握XML数据存储与DOM模型应用

XML 是拓展标记语言。它是一种简单的数据存储语言,通过使用一系列简单的标签来描述数据,并且这些标签能够以方便的方式建立。

如pet.xml示例:




小黑
3
100


小白
2
80

DOM解析XML

DOM 是 DocumentObjectModel 的缩写,也就是文档对象模型。因为 XML 会把数据组织成一棵树,所以 DOM 就是对这棵树的一个对象的描述。通俗来讲,就是通过对 XML 文档进行解析,在逻辑上为 XML 文档建立起一个树模型,树的节点是一个个对象,我们只要存取这些对象,就能够存取 XML 文档的内容。

见图:

DOM解析代码:

package Talking;
import java.io.IOException;
引入了 Java 的输入输出相关的类 java.io.ObjectInputStream 中的 GetField 方法。
引入 javax.xml.parsers 包中的 DocumentBuilder 类。
引入 javax.xml.parsers 包中的 DocumentBuilderFactory 类。
导入 javax.xml.parsers 包中的 ParserConfigurationFactory 类和 DocumentBuilderFactory 类,创建 ParserConfigurationFactory 对象和 DocumentBuilderFactory 对象,通过 ParserConfigurationFactory 对象创建 DocumentBuilder 对象,通过 DocumentBuilderFactory 对象创建 Document 对象,使用 Document 对象进行 XML 文档的解析和操作。figurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
从 org.xml.sax 这个包中导入 SAXException 类。
public class TestPetXml {
public static void main 方法接收一个字符串数组参数 args 。 该方法用于程序的入口点 , 程序从这里开始执行 。 它是 Java 程序的主要执行点 , 通常包含程序的主要逻辑和操作 。 在这里可以进行各种初始化工作 , 调用其他方法 , 以及执行程序的主要功能 。
//从DOM工厂获得DOM解析器
DocumentBuilderFactory 是通过 DocumentBuilderFactory.newInstance() 方法创建出来的。
try {
//从DOM工厂获得DOM解析器
创建了一个 DocumentBuilder 对象 db,它是通过 dbf 的 newDocumentBuilder() 方法创建出来的。
//解析XML文档,得到一个Document,即DOM树
db 对 "f:/pet.xml" 进行解析,得到文档 doc 。
//得到pet所有节点列表信息
获取到的 NodeList 名为 perList,它是通过 doc.getElementsByTagName("dog") 方法获取到的关于“dog”的节点列表。
//轮循书本信息
System.out.println("XML文件中pet的初始化信息");
for(int i = 0;i属性的值
获取 dog 对象的属性节点 "id",然后获取该节点的值并赋值给字符串 strId。
//得到dog元素下的name属性
获取名为 dog 的元素下的所有名为“name”的元素,然后获取其中的第一个元素,再获取该元素的某个属性值(这里用 getF 表示获取属性值的方法),将其赋值给字符串 strName 。irstChild().getNodeValue();
//得到dog元素下的age属性
获取 dog 元素中名为“age”的标签的第一个子元素,并调用其 getF 方法,将返回值赋给字符串 niAge。irstChild().getNodeValue();
//得到dog元素下的weight属性
获取到的是狗的元素集合中第一个名为“weight”的元素,其对应的重量值为 dog.getElementsByTagName("weight").item(0).getF()所返回的内容。irstChild().getNodeValue();
SystemSystem.out.println("id 为:" + strId + ",name 为:" + strName + ",age 为:" + niAge + ",weight 为:" + weight);
}
} catch (SAXException e) {
e.printstacktrace();
} catch (IOException e) {
e.printstacktrace();
} catch (ParserConfigurationException e) {
e.printstacktrace();
}
}
}

输出结果:

XML文件中pet的初始化信息

id:1,name:小黑,age:3,weight:100

id:2,name:小白,age:2,weight:80

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

25阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

27阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

23阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

25阅读