XML DOM 安装使用教程

一、XML DOM 简介

XML DOM(文档对象模型)是一种用于访问和操作 XML 文档的编程接口。它将 XML 文档表示为一棵树结构,可以通过编程语言动态读取、修改、添加和删除 XML 元素和属性。

支持 XML DOM 的语言包括 Java、JavaScript、Python、C# 等。


二、常见编程语言的支持

编程语言 XML DOM 操作库
Java javax.xml.parsers.*org.w3c.dom.*
Python xml.dom.minidomElementTree
JavaScript 浏览器内建 XML DOM 支持
C# System.Xml 命名空间

三、环境准备与安装

3.1 Java

Java 中无需安装额外库,JDK 已内置支持:

xml 复制代码
<dependency>
    <groupId>javax.xml</groupId>
    <artifactId>jaxp-api</artifactId>
</dependency>

3.2 Python

Python 自带 xml.dom.minidom 模块:

bash 复制代码
# 若使用第三方库 lxml,可用以下命令安装:
pip install lxml

四、Java 示例:读取 XML

java 复制代码
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("example.xml");

NodeList names = doc.getElementsByTagName("name");
System.out.println(names.item(0).getTextContent());

五、Python 示例:读取 XML

python 复制代码
from xml.dom.minidom import parse

dom = parse("example.xml")
root = dom.documentElement

name = root.getElementsByTagName("name")[0].firstChild.data
print(name)

六、JavaScript 示例(浏览器环境)

html 复制代码
<script>
var xmlStr = `<person><name>小奇</name></person>`;
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlStr, "text/xml");

var name = xmlDoc.getElementsByTagName("name")[0].textContent;
console.log(name);
</script>

七、常见操作

7.1 遍历子节点(Java)

java 复制代码
NodeList list = root.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
    Node node = list.item(i);
    if (node.getNodeType() == Node.ELEMENT_NODE) {
        System.out.println(node.getNodeName());
    }
}

7.2 创建元素并写入 XML(Python)

python 复制代码
from xml.dom.minidom import Document

doc = Document()
root = doc.createElement('person')
doc.appendChild(root)

name = doc.createElement('name')
name.appendChild(doc.createTextNode('小奇'))
root.appendChild(name)

with open("new.xml", "w") as f:
    f.write(doc.toprettyxml(indent="  "))

八、常见问题

Q1: Java 报错"Cannot parse XML"?

  • 确认 XML 文件格式正确;
  • 检查路径是否正确;
  • 使用 try-catch 捕获异常查看详细信息。

Q2: DOM 操作效率低?

  • DOM 会将整个 XML 加载入内存,适合小文件;
  • 对于大文件建议使用 SAX 或 StAX 等事件驱动方式。

九、学习资源推荐


本文由"小奇Java面试"原创发布,转载请注明出处。

可以搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

相关推荐
ps_xiaowang16 分钟前
React Query入门指南:简化React应用中的数据获取
前端·其他·react native·react.js
知识分享小能手28 分钟前
微信小程序入门学习教程,从入门到精通,微信小程序开发进阶(7)
前端·javascript·学习·程序人生·微信小程序·小程序·vue3
sophie旭2 小时前
一道面试题,开始性能优化之旅(8)-- 构建工具和性能
前端·面试·性能优化
市民中心的蟋蟀2 小时前
第三章 钩入React 【上】
前端·react.js·架构
Holin_浩霖3 小时前
为什么typeof null 返回 "object" ?
前端
PanZonghui3 小时前
Zustand 实战指南:从基础到高级,构建类型安全的状态管理
前端·react.js
PanZonghui3 小时前
Vite 构建优化实战:从配置到落地的全方位性能提升指南
前端·react.js·vite
_extraordinary_3 小时前
Java Linux --- 基本命令,部署Java web程序到线上访问
java·linux·前端
用户1456775610373 小时前
推荐一个我私藏的电脑神器:小巧、无广、功能强到离谱
前端
用户1456775610373 小时前
终于找到了!一个文件搞定PDF阅读
前端