JavaScript操作XML文件之XML读取方法

一、前言

XML是一种数据传输格式,极为常见。在JavaScript中,通过XMLHttpRequest对象即可访问XML资源。本文重点是通过XML DOM来对XML文件进行读取。

二、XML DOM简介

XML DOM(XML Document Object Model),即XML文档对象模型。在JavaScript中,通过XML DOM可以操作XML文档中的任意节点。XML DOM分为级别,我们在JavaScript中主要使用的是 Level 1。

三、XML DOM的API:

1.创建XML DOM对象

var xmlDoc=new XMLDom();或者var xmlDoc=new ActiveXObject("Microsoft.XMLHTTP");

2.XML DOM对象方法

  • loadXML(): 加载XML字符串
  • load(): 加载XML文件
  • getElementById(): 根据id获取元素
  • getElementsByTagName(): 根据标签名获取元素
  • createElement(): 创建元素
  • createTextNode(): 创建文本节点
  • appendChild(): 添加子节点
  • removeChild(): 删除子节点
  • setAttribute(): 设置节点属性

四、XML文件读取

  1. 通过URL读取XML:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    myFunction(this);
  }
};
xhttp.open("GET", "file.xml", true);
xhttp.send();

function myFunction(xml) {
  var xmlDoc = xml.responseXML;
  console.log(xmlDoc);
}
  1. 通过文本读取XML:
var text = "<bookstore><book>" +
    "<title>Harry Potter</title>" +
    "<author>J.K. Rowling</author>" +
    "<year>2005</year>" +
    "</book></bookstore>";

var parser = new DOMParser();
var xmlDoc = parser.parseFromString(text,"text/xml");
console.log(xmlDoc);

五、示例说明

我们可以通过以上API,将XML转换成文本或者进行文件读取。对于XML文档的结构,我们在此展示一个简单的样例如下,结构十分清晰:

<?xml version="1.0"?>
<bookstore>
    <book>
        <title>Web前端技术</title>
        <author>张三</author>
        <price>100</price>
    </book>
    <book>
        <title>Java程序设计</title>
        <author>李四</author>
        <price>120</price>
    </book>
    <book>
        <title>Python深度学习</title>
        <author>王五</author>
        <price>80</price>
    </book>
</bookstore>

当XML文件结构很复杂时,我们可以通过循环遍历方式访问节点,操作节点。通常的做法是使用getElementsByTagName()获取指定标签的所有元素,对获取的元素进行访问和操作,如下示例所示:

var xmlDoc = loadXmlDoc("/books.xml");
var books = xmlDoc.getElementsByTagName("book");
for (i = 0; i<books.length;i++) {
    var title = books[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
    var author = books[i].getElementsByTagName("author")[0].childNodes[0].nodeValue;
    var price = books[i].getElementsByTagName("price")[0].childNodes[0].nodeValue;
    console.log(title + ", " + author + ", " + price);
}

六、总结

XML数据交换格式在互联网应用中十分常见,通过JavaScript DOM可以读取XML文件的特定部分、修改XML节点、创造XML文档、排序节点以及在大多数 Web 浏览器中通过 AJAX 进行数据库读取。以上便是完整的XML读取攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript操作XML文件之XML读取方法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript中的console.trace()函数介绍

    JavaScript中的console.trace()函数介绍 简介 console.trace() 函数用于在控制台输出当前代码运行的栈信息,即函数调用时的函数调用链。它可以帮助我们更好地理解程序的执行过程,找出代码中的错误或瓶颈所在。 语法 console.trace(); 示例 示例一 我们可以通过一个示例来演示 console.trace() 函数的…

    JavaScript 2023年6月11日
    00
  • 超出JavaScript安全整数限制的数字计算BigInt详解

    超出JavaScript安全整数限制的数字计算BigInt详解 在JavaScript中,数字类型的数据有其取值范围限制。当使用极大或极小的数字时,可能会导致计算结果出现错误。为了解决这个问题,ES2020引入了BigInt类型,可以用来处理任意大的整数。本文讲解BigInt类型相关知识和示例。 什么是BigInt? BigInt是一种特殊的数据类型,可以用…

    JavaScript 2023年5月28日
    00
  • javascript流程控制语句集合

    JavaScript 流程控制语句集合 在 JavaScript 中,流程控制语句可以让我们根据不同条件执行不同的操作,这对于编写复杂的程序非常重要。JavaScript 中的流程控制语句集合主要包括以下三个部分: 条件语句 循环语句 控制语句 条件语句 条件语句可以让我们根据不同的条件执行不同的程序代码。在 JavaScript 中,条件语句主要包括以下两…

    JavaScript 2023年5月27日
    00
  • 详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑

    当使用Bootstrap表单验证和Bootstrap-select插件时,可能会发现在重置表单时,表单中的Bootstrap-select插件的验证提示并没有被清除,这是一个很常见的问题,本文将详细讲解如何解决这个问题。 前置知识 Bootstrap表单验证 Bootstrap表单验证是Bootstrap框架的一个组件,它可以帮助我们快速地验证表单中的数据是…

    JavaScript 2023年6月10日
    00
  • 判定对象是否为window的js代码

    判定对象是否为window的js代码可以采用以下两种方式进行判断: 方式一:使用window对象自带的属性 在JavaScript中,window是一个全局对象,因此可以通过window对象来判定一个对象是否为window。window对象有一个自带的属性window,该属性指向window自身。因此如果待判断的对象和window自身完全相等,或者和wind…

    JavaScript 2023年6月11日
    00
  • javascript 正则表达式用法 小结

    JavaScript 正则表达式用法小结 什么是正则表达式 正则表达式是一种用来匹配字符串的模式。在 JavaScript 中,正则表达式可以用来处理字符串的各种操作,比如查找、替换和提取等等。 正则表达式的基本语法 正则表达式由若干个字符和元字符组成,其中元字符用来指定匹配规则。下面是一些常见的元字符和它们的含义: 元字符 含义 . 匹配任意单个字符。 ^…

    JavaScript 2023年5月28日
    00
  • 在element-ui的el-tree组件中用render函数生成el-button的实例代码

    下面是详细讲解“在element-ui的el-tree组件中用render函数生成el-button的实例代码”的完整攻略: 确定需求 我们需要在el-tree组件的每一个节点后面添加一个按钮,同时该按钮需要可以点击并绑定事件。 操作步骤 1.在el-tree的render函数中添加按钮 在element-ui的el-tree组件中,我们可以通过重写该组件的…

    JavaScript 2023年6月11日
    00
  • JavaScript结合HTML DOM实现联动菜单

    一、前言 JavaScript结合HTML DOM可实现动态操作HTML文档的功能,通常用于创建富交互网页。本文将讲解如何使用JavaScript结合HTML DOM实现联动菜单。 二、准备工作 在使用JavaScript结合HTML DOM实现联动菜单前,需准备如下工作: 编写HTML代码,包含两个或以上select控件,其中一个为主控控件,另外的为从属控…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部