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() 用于加载文件。

相关推荐
深蓝海拓5 小时前
PySide6从0开始学习的笔记(二十一) 使用loadUi直接加载.ui文件
笔记·python·qt·学习·ui·pyqt
charlie1145141915 小时前
FreeRTOS: 信号量(Semaphores)、互斥量(Mutex)与优先级继承
开发语言·笔记·学习·c·freertos·实时操作系统
Stanford_11065 小时前
【2026新年启程】学习之路,探索之路,技术之路,成长之路……都与你同行!!!
前端·c++·学习·微信小程序·排序算法·微信开放平台
Ahtacca5 小时前
Redis 五大常用数据类型详解及 Java 客户端(RedisTemplate)操作实战
java·数据库·redis·学习·缓存
知识分享小能手5 小时前
Ubuntu入门学习教程,从入门到精通, Ubuntu 22.04中的进程管理详解(15)
linux·学习·ubuntu
0和1的舞者6 小时前
SpringAOP详解(二)
学习·spring·切面·代理·知识·springaop
iiiiii116 小时前
TD(λ),资格迹(Eligibility Traces)与时序差分学习的统一
人工智能·学习·机器学习·强化学习·rl
走在路上的菜鸟6 小时前
Android学Flutter学习笔记 第一节 Android视角认知Flutter(View,intent,Async UI)
android·学习·flutter
坚持学习前端日记6 小时前
个人运营小网站的最佳策略
java·学习·程序人生·职场和发展·创业创新
崇山峻岭之间7 小时前
Matlab学习记录20
开发语言·学习·matlab