JavaScript 解析 XML 对象及 SVG 节点读取详解
作者:木棉时间:2026-10-23 20:53:28浏览:564
本文详细讲解如何在 JavaScript 中解析 XML 字符串并提取节点数据。针对 IE 与非 IE 浏览器,分别演示了使用 ActiveXObject 和 DOMParser 加载 XML 的方法。重点介绍了如何获取 SVG 对象的文本内容、属性值以及遍历子节点,适用于需要处理 SVG 或通用 XML 结构的 Web 开发场景。
XML 数据结构示例
首先需要准备待读取的 XML 数据。
示例代码如下:
<svg id="svgID" key="1">
<desc id= "descID">
Text1
</desc>
<defs>
Text2
</defs>
<g>
text3
</g>
</svg>JavaScript 解析该 XML 的具体实现逻辑如下:
JavaScript 解析实现
对应的 JavaScript 处理代码如下:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript">
<!--
function initXML(){
if (window.ActiveXObject){
var doc=new ActiveXObject("Microsoft.XMLDOM");
doc.async="false";
doc.load("test.xml");
}else{
var parser=new DOMParser();
var doc=parser.parseFromString("test.xml","text/xml");
}
var xmlDoc=doc.documentElement;//获取svg对象
xmlDoc.text;//输出svg对象中所有的text,output:text1 Text2 Text3
xmlDoc.getAttribute("id");//输出svg对象的id,output:svgID
xmlDocxmlDocLen=xmlDoc.childNodes.length;//输出svg对象的子节点个数,output:3
var xmlDocxmlDocChilds=xmlDoc.childNodes;//获取svg的所有子节点
var xmlDOcChildNode0=xmlDocChilds[0];//获取svg的第一个子节点
var xmlDocChildNode0TagName=xmlDOcChildNode0.nodeName;//获取svg的第一个子节点的tagname,output:desc
var xmlDocChildNode0ID=xmlDocChildNode0.getAttribute("id");//获取svg的第一个子节点的id属性,output:descID
var xmlDocChildNode0InnerText=xmlDocChildNode0.Text
xmlDocChildNode0InnerText=xmlDocChildNode0.firstChild.nodeValue;;//获取svg的第一个子节点的text,output:Text1
}
// --></script>
<title></title>
</head>
<body>
<input onclick="initXML();" value="testXML" type="button" />
</body>
</html>作者最新文章
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
为什么JS中typeof []返回object:数组类型检测误区解析
2026-11-04 19:50:47
D3.js 新手入门:环境搭建与第一个条形图实现
2026-11-04 10:49:48
