XML DOM – 属性和方法

XML DOM 最全「属性和方法」速查表(2025 版)

—— 真正日常用到 95% 的全部写在这里了,直接收藏!

一、所有节点共有的核心属性(12 种节点都支持)

属性类型 / 返回值说明必背度
nodeNamestring节点名称(标签名、#text、#document 等)★★★★★
nodeValuestring | null节点的值(文本、属性、注释、CDATA 才有)★★★★★
nodeTypenumber (1~12)节点类型(1=元素,3=文本,2=属性 等)★★★★★
parentNodeNode | null父节点★★★★★
childNodesNodeList所有子节点(包括空白文本!)★★★★★
firstChildNode | null第一个子节点(常是换行文本)★★★★
lastChildNode | null最后一个子节点★★★★
previousSiblingNode | null上一个兄弟节点★★★★
nextSiblingNode | null下一个兄弟节点★★★★
textContentstring获取/设置当前节点及其所有后代文本(最常用!)★★★★★
baseURIstring文档或节点的基准 URL★★

现代推荐(自动跳过空白文本节点):

firstElementChild、lastElementChild
previousElementSibling、nextElementSibling
children          // 只包含元素子节点

二、Document 节点(文档节点)专属属性和方法

属性/方法返回值说明必背度
documentElementElement根元素()★★★★★
doctypeDocumentType | null节点★★
createElement(tagName)Element创建元素节点★★★★★
createTextNode(text)Text创建文本节点★★★★★
createAttribute(name)Attr创建属性节点(不推荐,改用 setAttribute)★★
createComment(text)Comment创建注释节点★★★
createCDATASection(text)CDATASection创建 CDATA 节点★★
getElementsByTagName(name)HTMLCollection/NodeList按标签名查找(最经典方法)★★★★★
getElementById(id)Element | null按 id 查找(XML 必须有 DTD 定义 id 才有效)★★★
querySelector(cssSelector)Element | null用 CSS 选择器查找(现代推荐)★★★★★
querySelectorAll(cssSelector)NodeList同上,返回全部★★★★★

三、Element 元素节点专属属性和方法

属性/方法返回值说明必背度
tagNamestring标签名(大写,如 BOOK)★★★★★
attributesNamedNodeMap所有属性集合★★★★
getAttribute(name)string | null获取属性值★★★★★
setAttribute(name, value)void设置属性(会自动创建)★★★★★
removeAttribute(name)void删除属性★★★★★
hasAttribute(name)boolean是否有该属性★★★★
getAttributeNode(name)Attr | null获取属性节点(老写法,几乎不用)
setAttributeNode(attr)void设置属性节点(老写法)

四、Attr 属性节点专属(很少直接操作)

属性说明
name属性名
value属性值(可读写)
ownerElement所属的元素节点

五、增删改节点的核心方法(所有节点都可用)

方法说明必背度
appendChild(newNode)添加为最后一个子节点★★★★★
insertBefore(newNode, refNode)在 refNode 前插入★★★★★
removeChild(oldNode)删除指定子节点(老写法)★★★★
replaceChild(newNode, oldNode)替换子节点★★★★
cloneNode(deep)克隆节点(deep=true 连子节点一起克隆)★★★★★
hasChildNodes()是否有子节点★★★
normalize()合并相邻文本节点,去掉空白文本★★★

现代推荐(更简洁):

parent.remove()                // 自己删除自己(2023+ 浏览器)
node.before(...nodes)          // 在前面插入
node.after(...nodes)           // 在后面插入
node.replaceWith(...nodes)     // 替换自己

六、最常用的 10 个“一辈子够用”组合(直接背)

需求推荐写法(2025)
获取根元素doc.documentElement
取所有 book 节点doc.getElementsByTagName(“book”) 或 doc.querySelectorAll(“book”)
取第一个 title 的文本node.querySelector(“title”)?.textContent
获取/设置属性node.getAttribute(“id”) / node.setAttribute(“id”, “5”)
添加新节点parent.appendChild(newNode)
删除节点node.remove() 或 parent.removeChild(node)
克隆节点node.cloneNode(true)
遍历所有子元素for (let child of parent.children) { … }
取纯文本(推荐)element.textContent
输出 XML 字符串new XMLSerializer().serializeToString(doc)

七、一张图记住所有关系(终极记忆法)

Document (文档节点)
└── documentElement → Element (根元素)
    ├── attributes → NamedNodeMap → Attr (属性节点)
    ├── childNodes / children → NodeList / HTMLCollection
    │   └── Element / Text / Comment ...
    ├── firstElementChild ↔ previousElementSibling ↔ nextElementSibling ↔ lastElementChild
    └── parentNode ↑

把上面这张表打印/截图贴在显示器旁边,
3 天之内你就能达到“XML DOM 闭眼写”的水平!

需要我给你生成 PDF 版或 Anki 记忆卡片,直接说一声~

文章已创建 2732

发表回复

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

相关文章

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

返回顶部