JavaScript操作XML:读取与写入实例

1 下载量 17 浏览量 更新于2024-08-30 收藏 38KB PDF 举报
本文将介绍如何使用JavaScript来读取和写入XML文件,通过示例代码展示具体的实现方法。 在JavaScript中,XML处理主要依赖于ActiveXObject(在Internet Explorer中)或DOM(Document Object Model)接口(在现代浏览器中)。以下代码展示了如何使用这两种方法来读取和写入XML文件。 首先,我们来看`ClassModel.js`中的代码,它定义了一个类构造函数和一个扩展函数,用于创建和扩展对象。这部分代码是面向对象编程的基础,用于构建可复用的代码结构。 ```javascript ClassModel = { create: function() { return function() { this.construct.apply(this, arguments); } } } Extend = function(desc, src) { for (var c in src) { desc[c] = src[c]; } return desc; } Object.prototype.extend = function(src) { return Extend.apply(this, [this, src]); } ``` 接下来是`addData.js`中的代码,这部分代码具体实现了XML的读取和写入操作。这里使用了ActiveXObject,因为这个例子可能是在IE环境下运行,但现代浏览器通常不支持ActiveXObject,而是使用`XMLHttpRequest`或`fetch`API来加载XML文件。 ```javascript var insert = ClassModel.create(); // 创建ActiveXObject实例,用于处理XML var doc = new ActiveXObject("Msxml2.DOMDocument.3.0"); doc.load("books.xml"); // 加载XML文件 // 获取XML文件中的数据 var books; // 定义插入数据的类 insert.prototype = { construct: function(config) { this.id = config.id; this.name = config.name; this.author = config.author; this.price = config.price; this.publisher = config.publisher; this.count = config.count; this.insertData(); }, insertData: function() { // 创建新的book元素 var book = doc.createElement("book"); book.setAttribute("id", this.id); // 添加子元素 var name = doc.createElement("name"); var nameValue = doc.createTextNode(this.name); name.appendChild(nameValue); book.appendChild(name); var author = doc.createElement("author"); var authorValue = doc.createTextNode(this.author); author.appendChild(authorValue); book.appendChild(author); // ...其他子元素的创建和添加 // 将新元素插入到XML文档中 doc.documentElement.appendChild(book); } } ``` 在这个例子中,`insert.prototype`定义了一个名为`insert`的类,它包含了插入XML数据的方法。`insertData`方法负责创建新的`book`元素,并填充从配置对象`config`中获取的数据。通过调用`setAttribute`设置属性值,然后使用`createElement`和`createTextNode`创建并添加子元素。最后,将新建的`book`元素添加到XML文档的根元素下。 虽然上述代码适用于IE浏览器,但在其他现代浏览器中,如Chrome、Firefox、Safari和Edge,你需要使用XMLHttpRequest或fetch API来加载XML文件,然后使用DOM API来操作XML文档。例如: ```javascript fetch('books.xml') .then(response => response.text()) .then(xmlString => { var parser = new DOMParser(); var xmlDoc = parser.parseFromString(xmlString, 'text/xml'); // 使用xmlDoc进行后续操作 }); ``` 这就是使用JavaScript读取和写入XML的基本过程。请注意,由于安全性和兼容性问题,现代Web开发通常更倾向于JSON格式而不是XML。然而,在某些特定场景下,如与旧系统集成或处理已有XML数据时,这些XML操作方法仍然很有用。