JavaScript操作XML详解:加载与解析

需积分: 9 3 下载量 56 浏览量 更新于2024-09-23 收藏 36KB DOC 举报
本文主要介绍了如何使用JavaScript解析XML文件,主要方法是通过XMLDOM对象来实现。 在JavaScript中,解析XML文件通常有两种主要的方式,针对不同的浏览器环境有不同的实现。第一种方式是针对IE浏览器,利用ActiveXObject接口创建Microsoft.XMLDOM对象来加载并同步解析XML文件。以下是使用ActiveXObject的示例代码: ```javascript // 加载XML文档 function loadXML(xmlFile) { var xmlDoc; if (window.ActiveXObject) { xmlDoc = new ActiveXObject('Microsoft.XMLDOM'); xmlDoc.async = false; // 设置为同步加载 xmlDoc.load(xmlFile); } // ...其他非IE浏览器的处理代码 } ``` 在非IE浏览器中,可以使用W3C标准的DOM API来创建和加载XML文档。具体来说,可以通过`document.implementation.createDocument`方法创建一个新的XMLDocument实例,然后使用`load`方法加载XML文件。下面是对应的代码片段: ```javascript if (document.implementation && document.implementation.createDocument) { xmlDoc = document.implementation.createDocument('', '', null); xmlDoc.load(xmlFile); } else { return null; // 其他不支持的情况 } ``` 加载XML文件后,可以使用XMLDOM提供的方法来访问和操作XML文档的节点。例如,`getElementsByTagName`用于获取具有特定标签名的所有节点,`getAttribute`用于获取节点的属性值,`childNodes`用于获取节点的所有子节点等。 对于文章中提到的XML文件`Login.xml`,结构如下: ```xml <?xml version="1.0" encoding="utf-8"?> <Login> <Character> <C Text="热血" Value="0" /> <C Text="弱气" Value="1" /> <!-- ...其他C节点 --> </Character> <Weapon> <W Text="光束剑" Value="0" /> <W Text="光束配刀" Value="1" /> <!-- ...其他W节点 --> </Weapon> <EconomyProperty> <P Text="平均型" Value="0" /> <P Text="重视攻击" Value="1" /> <!-- ...其他P节点 --> </EconomyProperty> </Login> ``` 我们可以这样解析并访问XML中的数据: ```javascript // 假设xmlDoc已经加载完成 var characters = xmlDoc.getElementsByTagName('Character'); for (var i = 0; i < characters.length; i++) { var cNode = characters[i]; var text = cNode.getAttribute('Text'); var value = cNode.getAttribute('Value'); console.log('Text:', text, 'Value:', value); } // 同理,可以解析Weapon和EconomyProperty节点 ``` 通过这样的方式,我们可以遍历并获取XML文件中的所有相关信息,为后续的程序逻辑提供数据支持。在实际开发中,根据需求,还可以进一步封装成更高级别的函数或类,以便于管理和操作XML数据。