XML DOM 节点类型

XML DOM 节点类型 最全速查表(2025 版)

------ 一张表吃透 12 种节点,面试 + 实战直接背!

nodeType 常量名(标准) 中文名称 nodeName nodeValue textContent 日常是否常用 经典用途
1 ELEMENT_NODE 元素节点 标签名(大写,如 BOOK) null 元素内全部文本(最常用!) 100% 所有标签
2 ATTRIBUTE_NODE 属性节点 属性名(如 id) 属性值 属性值 80% 读写属性
3 TEXT_NODE 文本节点 "#text" 文本内容(可能含空格换行) 文本内容 90% 标签里的文字
4 CDATA_SECTION_NODE CDATA 节点 "#cdata-section" 不转义的原始内容 原始内容 10%

2025 年你只需要记住这 5 种(占 99.9% 实际场景)

nodeType 怎么判断(最快写法) 一句话记住
1 node.nodeType === 1node instanceof Element 所有标签
3 node.nodeType === 3 文本(包括空格换行)
2 node.nodeType === 2 属性(一般不直接操作)
8 node.nodeType === 8 注释
9 node.nodeType === 9 整个文档

实战判断代码(直接复制到项目里一辈子够用)

javascript 复制代码
function getNodeType(node) {
  switch (node.nodeType) {
    case 1:  return "元素节点:" + node.tagName;
    case 2:  return "属性节点:" + node.name + "=" + node.value;
    case 3:  return "文本节点:" + (node.nodeValue.trim() || "(空白)");
    case 8:  return "注释节点:" + node.nodeValue.trim();
    case 9:  return "文档节点";
    default: return "其他节点:" + node.nodeType;
  }
}

// 过滤只处理元素节点(最常用!)
for (let child of parent.childNodes) {
  if (child.nodeType === 1) {        // 只处理标签
    console.log(child.tagName);
  }
}

// 过滤空白文本节点(神技!)
if (node.nodeType === 3 && node.nodeValue.trim() === "") {
  // 这是换行或缩进产生的空白文本,直接忽略
  continue;
}

2025 年终极记忆口诀(背 5 行就无敌)

text 复制代码
1 = 元素(标签)
2 = 属性(id="1")
3 = 文本(包括空格)
8 = 注释
9 = 整个文档
其他 = 基本不用管

一张图记住所有取值方式

复制代码
任意节点
├── nodeType === 1 → 用 tagName + textContent + getAttribute
├── nodeType === 3 → 用 nodeValue(或直接用父元素的 textContent)
├── nodeType === 2 → 用 node.name 和 node.value(或父元素的 getAttribute)
└── 其他 → 基本不关心

记住上面这张表 + 5 行口诀 + 3 段判断代码,

你就已经完全掌握了 XML DOM 的 12 种节点类型,

面试被问"XML DOM 有几种节点类型?分别是什么?"能 10 秒倒背如流!

需要我给你一个"一键查看任意节点 nodeType 可视化工具",随时说一声~

相关推荐
星火开发设计7 分钟前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识
Hx_Ma1625 分钟前
SpringMVC返回值
java·开发语言·servlet
Yana.nice28 分钟前
openssl将证书从p7b转换为crt格式
java·linux
独自破碎E31 分钟前
【滑动窗口+字符计数数组】LCR_014_字符串的排列
android·java·开发语言
AI逐月33 分钟前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
想逃离铁厂的老铁34 分钟前
Day55 >> 并查集理论基础 + 107、寻找存在的路线
java·服务器
Jack_David41 分钟前
Java如何生成Jwt之使用Hutool实现Jwt
java·开发语言·jwt
瑞雪兆丰年兮42 分钟前
[从0开始学Java|第六天]Java方法
java·开发语言
一点技术1 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
datalover1 小时前
CompletableFuture 使用示例
java·开发语言