如何在 Java 中读取 XML 文件2024 年 9 月 10 日 | 阅读 8 分钟 在 Java 中读取 XML 文件与其他文件(如 .docx 和 .txt)的读取方式有很大不同,因为 XML 文件在标签之间包含数据。Java 提供了多种解析 XML 文件的方法。Java 中有两个解析器可以解析 XML 文件:
Java DOM 解析器DOM API 提供了读写 XML 文件的类。我们可以使用 DOM API 创建、删除、修改和重新排列节点。DOM 解析器会解析整个 XML 文件,并在内存中创建一个 DOM 对象。它以 树形结构 的形式表示 XML 文件,便于遍历和操作。在 DOM 中,XML 文件中的一切都是一个 节点。节点代表 XML 文件的某个组件。DOM 解析器在处理过程中 速度较慢,将 XML 文件加载到内存时会占用 大量内存。 在 Java 中读取 XML 文件,我们必须遵循以下过程:
使用 Eclipse 在 Java 中读取 XML 文件的步骤步骤 1: 创建一个简单的 Java 项目。 步骤 2: 创建一个类文件并为其命名。我们已将类文件命名为 ReadXMLFileExample1。 步骤 3: 编写以下代码。 步骤 4: 下载 dom-2.3.0-jaxb-1.0.6.jar 文件: 点击此处... 步骤 5: 在项目中创建一个 lib 文件夹。 步骤 6: 将 dom-2.3.0-jaxb-1.0.6.jar 文件复制并粘贴到 lib 文件夹中。 步骤 7: 设置 类路径 右键单击项目 -> Build Path -> Configure Build Path -> Add External JARs -> 选择 JAR 文件 -> 单击 Open 按钮 -> Apply and Close。 步骤 8: 创建一个 XML 文件。我们已创建一个名为 XMLFile.xml 的 XML 文件,并向其中写入以下数据。 步骤 9: 运行项目。 创建 XML 文件:XMLFile.xml 使用 DOM 解析器读取 XML 文件的示例 输出 Root element: class Node Name: student Student id: 101 First Name: Naman Last Name: Kumar Subject: Math Marks: 83 Node Name: student Student id: 102 First Name: Kapil Last Name: Kumar Subject: Chemistry Marks: 60 Node Name: student Student id: 103 First Name: Harsh Last Name: Singh Subject: English Marks: 70 Node Name: student Student id: 104 First Name: Jitesh Last Name: Singh Subject: Physics Marks: 76 让我们看另一个读取 XML 文件的示例。 使用 DOM 解析器读取 XML 文件的示例 以下示例读取相同的 XML 文件 XMLFile.xml,并展示了如何逐个遍历节点。它会打印节点的值、名称以及任何存在的属性。 示例 输出 Root element: class Node Name =class [OPEN] Node Content = 101 Naman Kumar Maths 83 102 Kapil Kumar Chemistry 60 103 Harsh Singh English 70 104 Jitesh Singh Physics 76 Node Name =student [OPEN] Node Content = 101 Naman Kumar Maths 83 Node Name =id [OPEN] Node Content =101 Node Name =id [CLOSE] Node Name =firstname [OPEN] Node Content =Naman Node Name =firstname [CLOSE] Node Name =lastname [OPEN] Node Content =Kumar Node Name =lastname [CLOSE] Node Name =subject [OPEN] Node Content =Math Node Name =subject [CLOSE] Node Name =marks [OPEN] Node Content =83 Node Name =marks [CLOSE] Node Name =student [CLOSE] Node Name =student [OPEN] Node Content = 102 Kapil Kumar Chemistry 60 Node Name =id [OPEN] Node Content =102 Node Name =id [CLOSE] Node Name =firstname [OPEN] Node Content =Kapil Node Name =firstname [CLOSE] Node Name =lastname [OPEN] Node Content =Kumar Node Name =lastname [CLOSE] Node Name =subject [OPEN] Node Content =Chemistry Node Name =subject [CLOSE] Node Name =marks [OPEN] Node Content =60 Node Name =marks [CLOSE] Node Name =student [CLOSE] Node Name =student [OPEN] Node Content = 103 Harsh Singh English 70 Node Name =id [OPEN] Node Content =103 Node Name =id [CLOSE] Node Name =firstname [OPEN] Node Content =Harsh Node Name =firstname [CLOSE] Node Name =lastname [OPEN] Node Content =Singh Node Name =lastname [CLOSE] Node Name =subject [OPEN] Node Content =English Node Name =subject [CLOSE] Node Name =marks [OPEN] Node Content =70 Node Name =marks [CLOSE] Node Name =student [CLOSE] Node Name =student [OPEN] Node Content = 104 Jitesh Singh Physics 76 Node Name =id [OPEN] Node Content =104 Node Name =id [CLOSE] Node Name =firstname [OPEN] Node Content =Jitesh Node Name =firstname [CLOSE] Node Name =lastname [OPEN] Node Content =Singh Node Name =lastname [CLOSE] Node Name =subject [OPEN] Node Content =Physics Node Name =subject [CLOSE] Node Name =marks [OPEN] Node Content =76 Node Name =marks [CLOSE] Node Name =student [CLOSE] Node Name =class [CLOSE] Java SAX 解析器Java SAX 解析器是 Simple API for XML 的缩写。SAX 解析器会 逐行 解析 XML 文件。当它遇到 XML 文件中的开始标签、结束标签和字符数据时,会触发事件。SAX 解析器也称为 事件驱动解析器。 SAX 解析器不会将任何 XML 文件加载到内存中。它也不会创建 XML 文档的任何对象表示。SAX 解析器使用回调函数通知客户端 XML 文档的结构。与 DOM 解析器相比,它 速度更快,占用的 内存更少。 SAX 是 XML 的一个 流式接口,这意味着 XML 文件从文档顶部开始,并在根元素关闭时结束,按顺序进行解析。 使用 SAX 解析器读取 XML 文件的示例 输出 Start Element: class Start Element: student Start Element: id ID: 101 End Element: id Start Element: firstname First Name: Naman End Element: firstname Start Element: lastname Last Name: Kumar End Element: lastname Start Element: subject Subject: Math End Element: subject Start Element: marks Marks: 83 End Element: marks End Element: student Start Element: student Start Element: id ID: 102 End Element: id Start Element: firstname First Name: Kapil End Element: firstname Start Element: lastname Last Name: Kumar End Element: lastname Start Element: subject Subject: Chemistry End Element: subject Start Element: marks Marks: 60 End Element: marks End Element: student Start Element: student Start Element: id ID: 103 End Element: id Start Element: firstname First Name: Harsh End Element: firstname Start Element: lastname Last Name: Singh End Element: lastname Start Element: subject Subject: English End Element: subject Start Element: marks Marks: 70 End Element: marks End Element: student Start Element: student Start Element: id ID: 104 End Element: id Start Element: firstname First Name: Jitesh End Element: firstname Start Element: lastname Last Name: Singh End Element: lastname Start Element: subject Subject: Physics End Element: subject Start Element: marks Marks: 76 End Element: marks End Element: student End Element: class 下一个主题Java 教程 |
巴斯塔尔是印度恰蒂斯加尔邦一个风景如画的地区,而爪哇是印度尼西亚一个重要的岛屿,乍一看可能相去甚远。一个坐落在茂密森林和原住民部落之间的文化天堂,另一个是东南亚一个繁华的技术中心...
阅读 4 分钟
这是谷歌、亚马逊、TCS、Accenture、Uber 等顶级 IT 公司面试中经常问到的一个非常有趣的问题。通过解决这个问题,可以检查面试者的逻辑能力、批判性思维和解决问题的能力。所以,在本节中,我们将...
阅读 3 分钟
Java 中的 BreakIterator ious() 方法及示例 java.text.BreakIterator 类包含一个 ious() 方法。通过调用 current() 方法可以获得当前边界,而使用 BreakIterator 类可以获得其后面 ious 边界的索引。它给出了第一个...的偏移量。
阅读 3 分钟
在直接进入“阻塞队列”主题之前,让我们先简要了解一下队列。队列是对象的有序列表,其中插入发生在列表的尾部,删除发生在列表的前端。因此,它是...
14 分钟阅读
? 对象显示现实世界的事物,并包含变量等数据及其方法等行为。对象使代码更加有条理,易于重用,并且有利于管理大型项目。Java 还使用重要的特性,如继承(它共享其特性)、封装...
阅读 8 分钟
是在 Java 控制台中显示的错误消息,当 Java 程序中出现错误时显示。它类似于 Windows 错误消息,但特定于 Java 程序。此错误消息可以提供有关问题的关键信息,例如错误...
阅读 4 分钟
在 Java 中,构造函数是在创建对象时调用的特殊方法。它们用于初始化对象状态并执行任何必要的设置。Java 构造函数的一个有趣特性是能够在其中调用另一个构造函数……
阅读 4 分钟
什么是 UUID? UUID 是通用唯一标识符 (Universally Unique Identifier) 的缩写。UUID 由 Open Software Foundation (OSF) 标准化。它是分布式计算环境 (DCE) 的一部分。UUID 是一个 36 个字符长的唯一编号。它也被称为全局唯一标识符 (GUID)。A 类 UUID...
阅读 4 分钟
目标是以逗号分隔的升序打印一个数字数组,其中包含数字 1、2 和 3。如果没有包含数字 1、2 和 3 的数字,则打印 -1。示例 1:输入:num_arr[] = {9821, 627183, 12, 1234} 输出:1234, 627183 说明 9821……
7 分钟阅读
在本节中,我们将讨论如何以 Z 字形打印矩阵。此外,我们将创建一个 Java 程序,该程序将打印矩阵的所有 Z 元素。Z 字形包括第一行、右对角线和最后一行的元素...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India