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

yizhihongxing

一、前言

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日

相关文章

  • Lua语言新手简单入门教程

    Lua语言新手简单入门教程 什么是Lua语言? Lua是一种简洁、可扩展的脚本语言。它被设计成一种嵌入式语言,可嵌入其他应用程序或运行时环境中。Lua具有轻量级、高效、快速、可移植和跨平台等特点,被广泛用于游戏开发、Web应用开发、科学计算、嵌入式系统、服务器端应用和工业自动化等领域。 安装Lua语言 在开始学习Lua语言前,首先需要安装Lua解释器。在官网…

    JavaScript 2023年5月28日
    00
  • JavaScript脚本库编写的方法

    JavaScript脚本库指的是封装了一组常用功能的JavaScript代码集合,供其他开发者在需要时直接调用使用。编写JavaScript脚本库的方法有以下几步: 1.明确需求 在编写JavaScript脚本库之前,需要先明确具体需求。例如,需要实现一组日期操作方法、DOM操作方法、数据类型判断方法等。 2.编写代码 在明确需求后,根据需求编写对应的Jav…

    JavaScript 2023年5月27日
    00
  • javascript中indexOf技术详解

    JavaScript中indexOf技术详解 简介 JavaScript中的 indexOf() 方法可用于查找指定元素在数组或字符串中的位置,如果找到,则返回该元素的索引;如果未找到,则返回 -1。 indexOf() 方法有两个参数,第一个参数是要查找的元素,第二个参数是要开始查找的位置(可选,默认从第一位开始查找)。 使用方法 对于数组 语法: arr…

    JavaScript 2023年6月11日
    00
  • Javascript Date valueOf() 方法

    以下是关于JavaScript Date对象的valueOf()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的valueOf()方法 JavaScript的valueOf()方法返回一个表示日期对象的原始值的数字。该数字表示自1970年1月1日00:00:00 UTC以来的毫秒数。该方法不接受任何参数。 下面是使用对象的valueO…

    JavaScript 2023年5月11日
    00
  • JavaScript实现数字前补“0”的五种方法示例

    JavaScript实现数字前补“0”是一个常见的需求。在编程中,我们经常需要对数字进行前补“0”的操作,以匹配字符串的长度或者满足数据格式的要求。本文将详细讲解五种JavaScript实现数字前补“0”的方法示例。 方法一:字符串拼接 其实,这是最常见的一种方法。可以将数字字符与“0”字符进行拼接,再将结果转换为字符串。拼接前需要判断数字是否占位够用。代码…

    JavaScript 2023年5月28日
    00
  • JS动态生成年份和月份实例代码

    下面我将为你详细讲解JS动态生成年份和月份实例代码的完整攻略。 1. 使用方法说明 该代码实现的功能是通过JS生成一个下拉框,用于选择年份和月份。在使用该代码前,需要将以下代码拷贝到你的HTML文件中: <!– 引入jquery –> <script src="https://cdn.bootcdn.net/ajax/libs…

    JavaScript 2023年5月27日
    00
  • javascript中闭包(Closure)详解

    JavaScript中闭包(Closure)详解 在JavaScript中,闭包是一个重要的概念。闭包可以让变量不受外部干扰,实现类似于面向对象编程的私有变量或者函数的功能。在本文中,我们将详细讨论JavaScript中闭包的概念、特点、运用场景和优化技巧。 闭包的概念与特点 闭包指的是函数和函数内部能够访问到的变量的组合。在JavaScript中,函数不仅…

    JavaScript 2023年6月10日
    00
  • js判断两个日期是否相等的方法

    JS判断两个日期是否相等的方法有多种实现方式,下面将分别介绍两种常用的方法: 方法一:将日期转为时间戳比较 将两个日期对象转化为时间戳(即毫秒数)后进行比较。 function compareDate(date1, date2) { return date1.getTime() === date2.getTime(); } 上述代码中,getTime() 方…

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