XML DOM 简介

XML DOM 简介(简洁明了版)

XML DOM 全称是 XML Document Object Model(XML 文档对象模型),是 W3C 的官方标准,用于在程序中以树形结构表示、访问和操作 XML 文档

核心思想

把整个 XML 文档加载到内存中,变成一棵节点树(Node Tree)

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="编程">
    <title lang="zh">JavaScript 高级程序设计</title>
    <author>扎卡斯</author>
    <price>99.00</price>
  </book>
</bookstore>

这棵树的结构是:

文档节点 (Document)
└── bookstore (元素节点)
    └── book (元素节点)
        ├── title (元素节点,属性 lang="zh")
        │    └── "JavaScript 高级程序设计" (文本节点)
        ├── author (元素节点)
        │    └── "扎卡斯" (文本节点)
        └── price (元素节点)
             └── "99.00" (文本节点)

DOM 的主要特点

特点说明
树形结构所有内容都是节点(元素、属性、文本、注释等)
完全加载到内存适合中小型 XML 文件(大文件会占用大量内存)
读写随意可以随时读取、修改、添加、删除节点
跨语言支持JavaScript、Java、Python、C#、PHP 等几乎所有语言都支持
简单易用API 直观,适合初学者和大多数业务场景

常见操作(以 JavaScript 为例)

// 加载 XML
const xmlDoc = new DOMParser().parseFromString(xmlString, "text/xml");

// 读取
xmlDoc.getElementsByTagName("title")[0].textContent

// 修改
node.setAttribute("lang", "cn");
node.textContent = "新标题";

// 添加新节点
const newNode = xmlDoc.createElement("book");
root.appendChild(newNode);

// 删除
node.parentNode.removeChild(node);

DOM vs 其他 XML 解析方式

方式内存占用读取速度是否支持写适用场景
DOM支持小中型 XML,随意读写
SAX极低不支持超大 XML,只读顺序处理
StAX/pull部分支持大文件,需要控制解析过程

一句话总结

XML DOM = 把整个 XML 当成一棵树放进内存,让你像操作对象一样自由地读、写、改、删。

最常用场景:浏览器端解析 XML、配置文件处理、前后端交互中的 XML 数据操作。

需要完整代码示例或某个语言的具体用法,随时告诉我!

文章已创建 2732

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部