XML语言的学习记录3-解析

学习笔记:

一、 解析XML文档:

1.使用 XMLHttpRequest 对象,将xml文档放入XML DOM对象中:

javascript 复制代码
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","books.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 

这种方法适用于除IE5、IE6之外的任何场景。

  1. 最佳实践是使用现代的 Fetch API 来异步加载 XML 文件,并使用 DOMParser 对象来解析 XML 数据。这种方法更加简洁、灵活,并且更符合现代 Web 开发的标准。
javascript 复制代码
// 指定要加载的 XML 文件路径
var url = "note.xml";

// 使用 Fetch API 异步加载 XML 文件
fetch(url)
  .then(response => {
    if (!response.ok) {
      throw new Error('Network response was not ok');
    }
    return response.text();
  })
  .then(xmlString => {
    // 创建一个新的 DOMParser 对象
    var parser = new DOMParser();
    
    // 使用 DOMParser 对象解析 XML 数据
    var xmlDoc = parser.parseFromString(xmlString, "text/xml");
    
    // 在这里可以处理解析后的 xmlDoc 对象
    console.log(xmlDoc);
  })
  .catch(error => {
    console.error('There was a problem with the fetch operation:', error);
  });
  1. 使用 ActiveXObject 对象,通过微软解析器来加载xml (仅限于IE浏览器)
javascript 复制代码
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("note.xml");

创建空的XML文档对象,关闭异步加载,加载note.xml文档。

注意:创建XMLHttpRequest 对象是new ActiveXObject("Microsoft.XMLHTTP"),这个写法仅适用于IE5、IE6场景,已经过时,不再关注;

而创建微软的xml文档对象是new ActiveXObject("Microsoft.XMLDOM"),这个是在所有IE浏览器中都可以使用的,但是使用场景也不大,仅限于IE浏览器,尽量不使用。

二、 解析字符串

javascript 复制代码
var xmlString = `
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>`;

if (window.DOMParser) {
  var parser = new DOMParser();
  try {
    // 使用DOMParser对象解析XML字符串
    var xmlDoc = parser.parseFromString(xmlString, "text/xml");

    // 检查解析后的XML文档是否有效
    if (xmlDoc.documentElement.nodeName == "parsererror") {
      throw new Error("Error while parsing XML string");
    }

    // 在这里可以处理解析后的xmlDoc对象
    console.log(xmlDoc);
  } catch (error) {
    console.error("Error loading XML string:", error);
  }
}
else // IE,实际使用中不用
{
  var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = "false";
  xmlDoc.loadXML(xmlString);
}

loadXML() 方法用于加载字符串(文本),load() 用于加载文件。

相关推荐
西岸行者3 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意3 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码3 天前
嵌入式学习路线
学习
毛小茛3 天前
计算机系统概论——校验码
学习
babe小鑫3 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms3 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下3 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。3 天前
2026.2.25监控学习
学习
im_AMBER3 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J3 天前
从“Hello World“ 开始 C++
c语言·c++·学习