讲师中心 微信公众号

工具推荐

视频效率加速
AniShort
AniShort

AI短剧协同制作平台

剧云
剧云

中文短剧剧本制作平台

立刻MV
立刻MV

低成本歌曲 MV、视频生成

Laper
Laper

剧本策划到成片协作

JS怎么遍历XML节点 JavaScript XML DOM遍历方法

秋雪大大_3906

秋雪大大_3906

发布时间:2026-01-22 09:45:26

|

794人浏览过

|

来源于php中文网

原创

JavaScript遍历XML节点需先用DOMParser解析字符串为Document对象,再通过children、getElementsByTagName或querySelectorAll等API安全访问元素节点,避开文本节点干扰,并可递归遍历全部元素。

js怎么遍历xml节点 javascript xml dom遍历方法

JavaScript 中遍历 XML 节点主要依靠原生 XML DOM API,核心是把 XML 字符串解析为 Document 对象,再用类似 HTML DOM 的方式(如 childNodes、getElementsByTagName、querySelector 等)访问和遍历节点。关键在于正确解析、识别节点类型、避开文本节点干扰。

解析 XML 字符串为 DOM 文档

浏览器中不能直接用 new DOMParser() 解析不规范的 XML(比如含 BOM、编码错误或自闭合标签写法不当),需确保字符串格式合法:

  • 使用 DOMParser 解析(现代浏览器支持):
    const parser = new DOMParser();<br>const xmlDoc = parser.parseFromString(xmlStr, "application/xml");

    解析失败时,xmlDoc.querySelector("parsererror") 会存在,可据此判断是否出错。
  • IE8/9 需用 ActiveXObject("Microsoft.XMLDOM")(已过时,仅作兼容参考)。

区分节点类型,安全遍历 childNodes

childNodes 包含元素节点、文本节点(换行缩进)、注释节点等。直接遍历易报错或跳过目标节点:

CSS
CSS

CSS 官方网站入口。访问 W3C 的 CSS 页面,查看 CSS 标准、学习资料与工作组动态;CSS 是 Web 标准,无需下载安装。

下载
  • 只处理元素节点(nodeType === 1):
    for (let node of parent.childNodes) {<br>  if (node.nodeType === 1) { /* 处理元素 */ }<br>}
  • 更简洁:用 children(只返回元素子节点,忽略文本/注释):
    for (let elem of parent.children) { /* elem 是 Element 类型 */ }

按标签名或属性快速定位并遍历

比递归遍历更高效,适合有明确结构的 XML:

立即学习“Java免费学习笔记(深入)”;

  • 获取所有同名元素:
    const items = xmlDoc.getElementsByTagName("item");<br>Array.from(items).forEach(item => { /* 处理每个 item 元素 */ });
  • 用 querySelectorAll 支持 CSS 选择器:
    const titles = xmlDoc.querySelectorAll("book title");<br>titles.forEach(el => console.log(el.textContent));
  • 读取属性值:
    const id = item.getAttribute("id");<br>// 或 el.attributes["id"]?.value

递归遍历全部元素节点(深度优先)

适合结构未知或需统一处理所有元素的场景:

  • 简单递归函数示例:
    function walkElements(node) {<br>  if (node.nodeType !== 1) return;<br>  console.log(node.tagName, node.textContent.trim());<br>  for (let child of node.children) {<br>    walkElements(child);<br>  }<br>}<br>walkElements(xmlDoc.documentElement);
  • 注意:避免对 textContent 直接全量取值——深层嵌套时可能包含大量空白或无关文本,建议用 node.innerText(部分浏览器支持)或针对性取子元素内容。

热门AI工具

更多
立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

838

2025.12.04

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

5124

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

6657

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

2642

2024.11.28

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

2458

2023.09.20

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1918

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

3164

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

6384

2023.10.24

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

20

2026.11.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn