`

[转]Javascript解析XML文档

    博客分类:
  • Java
阅读更多
例如有如下XML文件:
<?xml version="1.0" encoding="utf-8" ?> 
<Login> 
     <Character> 
         <C Text="热血" value="http://blog.bitscn.com/0"></C> 
         <C Text="弱气" Value="1"></C> 
         <C Text="激情" Value="2"></C> 
         <C Text="冷静" Value="3"></C> 
         <C Text="冷酷" Value="4"></C> 
     </Character> 
     <Weapon> 
         <W Text="光束剑" Value="0"></W> 
         <W Text="光束配刀" Value="1"></W> 
     </Weapon> 
     <EconomyProperty> 
         <P Text="平均型" Value="0"></P> 
         <P Text="重视攻击" Value="1"></P> 
         <P Text="重视敏捷" Value="2"></P> 
         <P Text="重视防御" Value="3"></P> 
         <P Text="重视命中" Value="4"></P> 
     </EconomyProperty> 
</Login> 


现在我需要对这个xml文件的内容进行操作.
首先,我们需要加载这个xml文件,js中加载xml文件,是通过XMLDOM来进行的.
// 加载xml文档 
loadXML = function(xmlFile) 
{ 
     var xmlDoc; 
     //判断浏览器类型 
     if(window.ActiveXObject) 
     { 
         xmlDoc = new ActiveXObject('Microsoft.XMLDOM'); 
         xmlDoc.async = false; 
         xmlDoc.load(xmlFile); 
     } 
     else if (document.implementation&&document.implementation.createDocument) 
     { 
         xmlDoc = document.implementation.createDocument('', '', null); 
         xmlDoc.load(xmlFile); 
     } 
     else 
     { 
         return null; 
     } 
    
     return xmlDoc; 
} 

xml文件对象出来了, 接下去我就要对这个文档进行操作了.
比如说,我们现在需要得到节点Login/Weapon/W的第一个节点的属性,那么我们可以如下进行.

// 首先对xml对象进行判断 
checkXMLDocObj = function(xmlFile) 
{ 
     var xmlDoc = loadXML(xmlFile); 
     if(xmlDoc==null) 
     { 
         alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!'); 
         window.location.href='/Index.aspx'; 
     } 
    
     return xmlDoc; 
} 

// 然后开始获取需要的Login/Weapon/W的第一个节点的属性值 
var xmlDoc = checkXMLDocObj('/EBS/XML/Login.xml'); 
var v = xmlDoc.getElementsByTagName('Login/Weapon/W')[0].childNodes.getAttribute('Text') 

而我在我的程序中的写法是这样子的,当然我在程序中的写法是已经应用到实际中的了.一并给出来,以供查看
initializeSelect = function(oid, xPath) 
{ 
     var xmlDoc = checkXMLDocObj('/EBS/XML/Login.xml'); 
     var n; 
     var l; 
     var e = $(oid); 
     if(e!=null) 
     { 
         n = xmlDoc.getElementsByTagName(xPath)[0].childNodes; 
         l = n.length; 
         for(var i=0; i<l; i++) 
         { 
             var option = document.createElement('option'); 
             option.value = n[i].getAttribute('Value'); 
             option.innerHTML = n[i].getAttribute('Text'); 
             e.appendChild(option); 
         } 
     } 
} 

上面的访问代码中,我们是通过xmlDoc.getElementsByTagName(xPath)来进行的.
还可以通过xmlDoc.documentElement.childNodes(1)..childNodes(0).getAttribute('Text")进行访问.
一些常用方法:
xmlDoc.documentElement.childNodes(0).nodeName,//可以得到这个节点的名称. 
xmlDoc.documentElement.childNodes(0).nodeValue,//可以得到这个节点的值. 这个值是来自于这样子的xml格式:<a>b</b>, 于是可以得到b这个值. 
xmlDoc.documentElement.childNodes(0).hasChild,//可以判断是否有子节点 


根据经验,最好是使用getElementsByTagName(xPath)的方法对节点进行访问,因为这样子可以直接通过xPath来定位节点,这样子会有更好的性能.
分享到:
评论

相关推荐

    使用javascript解析xml文件或xml格式字符串中文WORD版

    资源名称:使用Javascript解析xml文件或xml格式字符串 中文WORD版   内容简介: 本文档主要讲述的是使用Javascript解析xml文件或xml格式字符串;javascript中,不论是解析xml文件,...

    JavaScript解析XML文档成树菜单.chm

    JavaScript解析XML文档成树菜单.chm

    JavaScript解析XML文档成树菜单

    总结,JavaScript解析XML文档成树菜单涉及到DOM解析、XMLHttpRequest或fetch请求、DOM遍历、HTML结构生成、事件处理等多个技术点。具体实现可能因XML结构和需求而异,但基本流程是相似的。阅读原博客(288976)可以...

    JavaScript处理XML文档

    MSXML的核心服务不仅仅是DOM实现,还包括一系列任务,涉及解析XML文档并将其呈现给应用程序或脚本。MSXML还提供了一个不同的应用程序编程接口——Simple API for XML(SAX2),这是一种基于事件的XML解析方法,适用...

    js解析XML文件

    JS 解析 XML 文件 作为一名 IT 行业大师,我将从给定的...使用 JavaScript 解析 XML 文件需要了解 XML 文档的结构和各个节点的类型,选择合适的解析方法,考虑浏览器兼容性问题,并掌握相关的 JavaScript 语法和方法。

    C++解析xml文档或者xml字符串方法

    在C++中,解析XML文档或XML字符串是常见的任务,特别是在需要与JavaScript或其他不支持指针的语言交互时。本文将详细介绍如何在Visual Studio 2010环境下利用Microsoft的MSXML库来处理XML数据。 首先,让我们看看...

    javascript解析xml文件

    JavaScript提供了DOMParser API和ActiveXObject(仅限于Internet Explorer)来解析XML。以下是对这个主题的详细阐述: 首先,我们需要了解XML(eXtensible Markup Language),它是一种用于存储和传输数据的标记...

    JavaScript解析XML文件,在网页上以目录树的形式显示

    2. **JavaScript解析XML**:JavaScript提供了两种主要的方式来解析XML,即`DOMParser`和`XMLHttpRequest`(也称为Ajax)。`DOMParser`可以将XML字符串转化为DOM对象,方便后续操作;`XMLHttpRequest`则可以异步加载...

    js-xml.rar_javascript_javascript xml_js xml_js解析xml_xml js

    下面将详细探讨JavaScript解析XML的相关知识点。 1. DOM解析XML: 在JavaScript中,XML文档可以通过DOM(Document Object Model)接口来解析。DOM是一种标准,允许程序和脚本动态更新、添加和删除HTML或XML文档的...

    Javascript解析服务器端XML文件

    在浏览器环境下,我们通常用`XMLHttpRequest`对象来获取服务器上的XML文件,然后使用`responseXML`属性来获取XML文档对象。 以下是一个基本的示例,展示了如何使用JavaScript加载XML文件并进行解析: ```...

    DOM解析XML文档

    在本文中,我们将深入探讨DOM解析XML文档的相关知识点,包括DOM的基本概念、解析过程、节点操作以及实际应用。 一、DOM基本概念 DOM是一种与平台和语言无关的接口,它允许程序和脚本动态地访问和更新文档的内容、...

    javascript 对xml文件解析

    ### JavaScript 对 XML 文件解析知识点详解 #### 一、XML 文件解析背景及意义 XML(Extensible Markup Language,可扩展标记语言)是一种用于标记数据的语言,主要用于传输和存储数据。在 Web 开发中,XML 常被...

    FireFox下用XML DOM解析XML文档(ASP.NET Web)

    本文将详细讲解如何在Firefox下利用XML DOM解析XML文档。 首先,理解XML DOM的概念是至关重要的。XML DOM是一种W3C标准,它定义了一个统一的、平台和语言无关的接口,允许程序和脚本动态地访问和更新XML文档的结构...

    MSXML解析XML文档

    通过阅读"MSXML解析XML文档.doc"和"MSXML.doc"这两个文档,你将能够深入了解如何在实践中利用MSXML进行XML文档的处理,包括解析、查询、转换和验证等步骤,同时也能获取关于不同版本的MSXML特性和使用的详细信息。...

    JAVASCRIPT加载XML文档及操作XML文档的方法[归类].pdf

    在JavaScript中,处理XML文档主要涉及XML解析和DOM操作。XML(eXtensible Markup Language)是一种标记语言,常用于数据交换和存储结构化数据。JavaScript提供了多种方法来加载XML文档并进行操作,这些方法通常依赖...

    JavaScript解析XML的方法总结.

    ### JavaScript解析XML的关键方法 在给定的文件中,主要讨论了如何使用JavaScript来解析XML文件,并提供了一个具体的例子。以下是对这些关键方法的详细解释: #### 1. 加载XML文件 JavaScript解析XML的第一步是...

    javascript解析XML

    总结来说,JavaScript解析XML是Web开发中的重要技能,它允许开发者动态地处理和展示来自服务器的结构化数据,提高用户体验。DOM和SAX是两种主要的解析策略,其中DOM适用于小型XML文档,而SAX更适合处理大型文档。...

    JavaScript解析XML实现多级级联下拉列表

    总结来说,实现JavaScript解析XML实现多级级联下拉列表的关键在于理解XML的结构、使用DOMParser解析XML,以及处理级联下拉列表的事件和逻辑。通过这些技术,我们可以创建出高效且易于维护的级联选择功能,提升用户的...

    js的XML解析器 可以解析XMl文件和XML字符串

    JavaScript中的XML解析器是用于处理XML数据的关键工具,它允许开发者在浏览器环境中解析XML文档或者XML字符串,从而在Web应用中有效地使用这些数据。XML(eXtensible Markup Language)是一种结构化数据语言,常用于...

Global site tag (gtag.js) - Google Analytics