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删除元素节点removeChild()用法实例

    JavaScript中的removeChild方法 在JavaScript中,我们可以使用removeChild方法来删除一个指定的元素节点。该方法需要根据节点的父元素来找到要删除的节点,并从它的父元素中将该节点删除。 语法 removeChild()方法的语法如下: parentElement.removeChild(childElement) 其中,pa…

    JavaScript 2023年6月10日
    00
  • js脚本分页代码分享(7种样式)

    我来为你详细讲解“JS脚本分页代码分享(7种样式)”的攻略。 攻略分析 该攻略主要介绍如何使用JavaScript实现分页功能,并提供了7种不同的样式供选择。具体实现过程分为两部分:前端页面展示和后端数据获取。 前端页面展示:主要是在页面上展示分页的样式和相关的操作功能,通过JavaScript监听用户的操作完成前端展示的相关效果。 后端数据获取:通过Aja…

    JavaScript 2023年6月10日
    00
  • JavaScript通过RegExp使用正则表达式过程详解

    JavaScript通过RegExp使用正则表达式过程详解 在JavaScript中,正则表达式是一种非常强大的工具,可以用来匹配和操作字符串。在本篇文章中,我们将详细讲解JavaScript通过RegExp使用正则表达式的过程。 创建正则表达式 在JavaScript中,可以使用RegExp对象来创建正则表达式。有两种方式来创建正则表达式:使用字面量,或者…

    JavaScript 2023年6月10日
    00
  • 突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述

    Web Worker是HTML5中为JavaScript提供的多线程的解决方案之一,可以将一些复杂和耗时的任务在独立的线程中进行,以提高整个系统的响应速度。该技术可以通过JavaScript API进行调用。 Web Worker概述 Web Worker包含两种类型: 主线程中的Worker 普通的Web Worker 其中,主线程中的Worker用于加载…

    JavaScript 2023年5月28日
    00
  • JavaScript递归函数解“汉诺塔”算法代码解析

    下面为你提供“JavaScript递归函数解‘汉诺塔’算法代码解析”的完整攻略。 1. 理解“汉诺塔”问题 “汉诺塔”是一道经典的递归求解问题,其问题描述如下: 有三根柱子A、B、C,在柱子A上放置了n个大小不同、自下而上依次递增的圆盘。现要求按照以下规则将所有圆盘从柱子A移动到柱子C上: 每次只能移动一个圆盘; 圆盘可以放置在A、B、C中的任意一个柱子上,…

    JavaScript 2023年6月11日
    00
  • $.browser.msie 为空或不是对象问题的多种解决方法

    “$.browser.msie 为空或不是对象问题”的出现是因为早期jQuery版本中使用了$.browser属性,用于检测用户使用的浏览器类型和版本,但该属性在jQuery 1.9版本中已被废弃。如果在使用较旧的jQuery版本中仍然使用了该属性,就会出现该问题。 为了解决这个问题,我们可以使用以下两种方法来处理。 方法一:升级jQuery版本 升级jQu…

    JavaScript 2023年6月10日
    00
  • P3P 和 跨域 (cross-domain) cookie 访问(读取和设置)

    P3P(Platform for Privacy Preferences)是一个Internet标准,它在Web服务器和浏览器之间传递标准格式的隐私策略。P3P帮助网站明确并公开其隐私政策,并允许用户在浏览网站时了解网站将如何使用其个人信息。跨域cookie指的是在某个域名下,通过设置cookie使得另一个域名下的网站也可以共享这个cookie,即跨域共享c…

    JavaScript 2023年6月11日
    00
  • JavaScript的Backbone.js框架入门学习指引

    JavaScript的Backbone.js框架入门学习指引 什么是Backbone.js框架? Backbone.js是轻量级的JavaScript框架,用于在Web应用中提供MVC(Model-View-Controller)的结构。它被广泛应用于构建单页面应用程序(SPA)。 开始学习Backbone.js框架 为了开始学习Backbone.js框架,…

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