一、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.minidom 、ElementTree |
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 等事件驱动方式。
九、学习资源推荐
- W3School XML DOM 教程
- Oracle Java XML 教程
- MDN DOMParser 文档
- B站搜索"小奇Java面试"学习 XML 实战教程
本文由"小奇Java面试"原创发布,转载请注明出处。
可以搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。
