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 可视化工具",随时说一声~

相关推荐
q***44151 分钟前
SpringSecurity踢出指定用户
java
SHolmes18542 分钟前
Python all函数 判断是否同时满足多个条件
java·服务器·python
inksci2 分钟前
Python 中使用 SQL 连接池
服务器·数据库·python
shejizuopin6 分钟前
基于JavaSSM+MySQL的实验室考勤管理系统设计与实现
java·mysql·vue·毕业设计·论文·springboot·实验室考勤管理系统设计与实现
optimistic_chen13 分钟前
【Docker入门】容器技术
linux·运维·服务器·docker·容器
Lueeee.15 分钟前
2.智梯云枢・全维管控广告系统——解决串口卡顿 + 优化稳定性
linux·运维·服务器
J***516817 分钟前
SpringSecurity的配置
java
June`18 分钟前
IO模型全解析:从阻塞到异步(高并发的reactor模型)
linux·服务器·网络·c++
面汤放盐19 分钟前
软件架构指南 Software Architecture Guide
java·微服务·devops
tkevinjd19 分钟前
JUC5(线程池)
java·线程池·多线程·juc