`

JavaScript 解析 XML 时如何通过名称直接取到值?

    博客分类:
  • RIA
阅读更多

JavaScript 解析 XML 时如何通过名称直接取到值?

xml 代码
  1. <?xml version="1.0" encoding="UTF-8" ?>    
  2. <root>  
  3.     <Attribute name="aa" value="0" />  
  4.     <Attribute name="bb" value="1" />  
  5.     <Attribute name="cc" value="2" />  
  6.     ...   
  7.     ...   
  8.     <Operation name="initAllCounter" return="boolean"/>  
  9.     ...   
  10.     ...   
  11. </root>  

同级的Attribute,有没有办法通过类似于 getXXXByName("aa") 得到0, getXXXByName("bb") 得到1呢?

而不是通过

java 代码
  1. var attributes = response.getElementsByTagName('Attribute');   
  2. for(var i = 0;i < attributes.length;i++)   
  3. {   
  4.     name = attributes[i].getAttribute("name");   
  5.     // 然后一个个判断是否是aa,   
  6.     if(name == "aa")   
  7.     {   
  8.         // 然后再 通过 attributes[i].getAttribute("value"); 取得值   
  9.         value = attributes[i].getAttribute("value");    
  10.     }   
  11.     // ...   
  12. }  

 

有何办法?我现在先if判断处理之,再看有没有好方法?
分享到:
评论
7 楼 ppeter 2007-01-31  
knight 写道
这样 ?

node.selectSingleNode("//root/Attribute[@name='aa']").attributes.getNamedItem("value").nodeValue;

汗。。

IE下可以这么写:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <xml id="myData"> 
	<root>
		<Attribute name="aa" value="0" /> 
		<Attribute name="bb" value="1" />
		<Attribute name="cc" value="2" />
		<Operation name="initAllCounter" return="boolean"/>
	</root>
  </xml>

 </HEAD>
<script language="javascript">
	function getValueFromNode(nodeName , conditionName , attrName) {
		var node = myData.selectSingleNode("/root/" + nodeName + "[@name='"+ conditionName +"']");
		if (null == node) {
			return;
		}
		alert(node.getAttribute(attrName));
	}

	function getNodes(nodeName , attrName) {
		var nodes = myData.selectNodes("//" + nodeName);
		for (var i = 0; i < nodes.length; i++ )
		{
			alert(nodes[i].getAttribute(attrName));
		}
	}

</script>
 <BODY>
  <input type="button" value="获取nodeName=Attribute的value" onclick="getNodes('Attribute' , 'value')">
  <input type="button" value="获取name='aa'的value" onclick="getValueFromNode('Attribute' , 'aa' , 'value')">
  <input type="button" value="获取name='bb'的value" onclick="getValueFromNode('Attribute' , 'bb' , 'value')">
  <input type="button" value="获取name='cc'的value" onclick="getValueFromNode('Attribute' , 'cc' , 'value')">
  <input type="button" value="获取name='initAllCounter'的value" onclick="getValueFromNode('Operation' , 'initAllCounter' , 'return')">
 </BODY>
</HTML>

6 楼 knight 2007-01-30  
这样 ?

node.selectSingleNode("//root/Attribute[@name='aa']").attributes.getNamedItem("value").nodeValue;

汗。。
5 楼 garnoopy 2007-01-29  
if IE, try:

var jsXML = new ActiveXObject("MSXML2.DOMDocument.4.0");
jsXML.async = false;
jsXML.load("my.xml");
document.getElementById("myDivId").value = jsXML.xml;
4 楼 IvanLi 2007-01-29  
这里有xpath的例子
http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html
这里有介绍
http://ivanl.iteye.com/blog/39826
3 楼 IvanLi 2007-01-29  
xpath 是不是应该这么写?
//root/Attribute[@name="aa"]


2 楼 YuLimin 2007-01-26  
不要去想当然好不好,如果存在这样的情况,你怎么办,大家都想有个好的处理方式这是肯定的:)

找了些XPath的内容,在研究学习中。。。

http://developer.mozilla.org/en/docs/Introduction_to_using_XPath_in_JavaScript

http://glazkov.com/archive/2004/04/06/168.aspx
1 楼 pi1ot 2007-01-26  
这样的就应该设计成
<aa>0</aa>
<bb>1</bb>
<cc>2</cc>

相关推荐

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

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

    javascript 对xml文件解析

    ### JavaScript 对 XML 文件解析知识点详解 ...通过以上内容可以看出,JavaScript 提供了多种方式来解析和操作 XML 文件,开发者可以根据实际需求选择合适的方法。这些技术在处理 Web 应用程序中的动态数据时尤为重要。

    Javascript操作XML和HTML

    JavaScript能够解析XML文档,提取数据,并将其与HTML元素结合,创建交互式网页。 **XML解析:** JavaScript提供了DOM(Document Object Model)接口来处理XML文档。DOM是一种标准,将XML文档转化为一个可编程的对象...

    msxml解析xml同名节点

    ### msxml解析XML同名节点知识点详解 #### 一、MSXML简介 MSXML(Microsoft XML)是由微软公司开发的一套用于处理XML文档的技术。它提供了多种编程接口,包括COM接口,使得开发者能够轻松地在各种.NET框架之外的...

    Javascript 操作XML类

    JavaScript操作XML类主要涉及到在前端使用JavaScript与服务器之间交换数据,特别是XML格式的数据。XML(eXtensible Markup Language)是一种结构化数据语言,常用于Web应用程序的数据传输。以下是一些关键知识点: ...

    javascript加载xml 并解析各节点的值(实现方法).docx

    本文将详细介绍如何使用JavaScript来加载XML文件,并通过示例代码展示如何解析XML中的各个节点。 #### 一、JavaScript加载XML文件 为了在JavaScript中加载XML文件,我们需要创建一个XML DOM对象。根据浏览器的不同...

    使用javascript遍历XML文件并显示

    要使用JavaScript处理XML,主要涉及两个关键步骤:加载XML文件和解析XML内容。在描述中提到的博文中,作者可能讲解了以下技术: 1. **XMLHttpRequest对象**:这是JavaScript中用于异步请求数据的原生对象。通过创建...

    AJAX简介 异步 JavaScript 及 XML(Asynchronous JavaScript And XML)

    - **XML**:最初,AJAX名称中的“XML”指的是数据交换格式,但现在,数据格式可以是XML、JSON或其他格式。XML是一种结构化数据格式,适用于复杂的数据交换,但JSON现在更为常见,因为它更轻量级且易于处理。 **AJAX...

    xmljson解析客户端

    JSON的优点在于它可以直接被JavaScript解析为原生对象,这使得在Web应用中使用JSON非常便捷。 在实际应用中,我们常常需要在XML和JSON之间进行转换。例如,一个服务可能以XML格式提供数据,但客户端可能更倾向于...

    兼容浏览器的解析xml的js代码

    在JavaScript中,解析XML文档并使用XPath进行查询是一项常见的任务,尤其在开发跨浏览器的Web应用时,确保代码兼容性尤为重要。XPath是一种在XML文档中查找信息的语言,它允许我们根据节点的名称、属性、值或其他...

    xml_format.rar_javascript_xml格式化

    JavaScript作为一种广泛使用的客户端脚本语言,也常被用来处理XML数据,包括解析、操作和格式化。 标题"xml_format.rar_javascript_xml格式化"表明这个压缩包包含了一个用JavaScript实现的XML格式化工具。这个工具...

    JavaScript,验证XML正确性

    ### JavaScript 验证 XML 正确性的方法 在 Web 开发中,XML(可扩展标记语言)被广泛用于数据交换和存储。为了确保 XML 文件的结构完整性和语法正确性,通常需要对其进行验证。本文将详细介绍如何使用 JavaScript ...

    javascript xml操作函数

    需要注意的是,IE中的XML解析器不支持通过URL直接加载XML数据,因此采用另一种方式,即通过 `XMLHttpRequest` 来获取数据,再解析为XML文档。 3. **其他浏览器**:如果既不支持 `DOMParser` 也不支持 `...

    json解析xml 的jar包

    JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式,它们在Web服务和应用程序之间传输数据时起到关键作用。JSON以其简洁、易读和高效而受到青睐,而XML则以其...

    javascript 操作xml_dom对象整理集合

    综上所述,JavaScript操作XML DOM对象涉及到了从解析XML到动态操作文档的各个层面,同时结合JavaScript技巧,可以实现高效、灵活的Web应用开发。通过不断学习和实践,开发者能更好地驾驭这个强大的工具集。

    级联菜单=javascript+xml

    通过解析XML文档,JavaScript可以获取这些数据,并根据数据构建菜单。 实现级联菜单的基本步骤包括: 1. **创建XML结构**:定义菜单的层次结构,每个菜单项用一个XML节点表示,包含相应的属性,如`&lt;menuItem&gt;`,...

    javascript+xml省市区热点四级联动

    在实现四级联动时,JavaScript通常会通过Ajax(Asynchronous JavaScript and XML)技术异步加载XML数据。当用户在某个级别做出选择时,JavaScript会发送一个HTTP请求到服务器,获取并解析相应级别的XML数据,然后将...

    解析xml学习资料

    本学习资料旨在深入解析XML的基本概念、语法特性以及在实际中的应用。 一、XML基本概念 1. XML起源:XML源于HTML,旨在提高数据的结构性和可读性,它不是编程语言,而是数据描述语言。 2. XML文档结构:XML文档由...

    XML基础Java解析XML.docx

    解析XML数据通常需要编程实现,Java中可以使用DOM(Document Object Model)、SAX(Simple API for XML)或StAX(Streaming API for XML)等API来处理XML文档。DOM一次性加载整个文档到内存,适合小型文档;SAX事件...

    javascript加载xml 并解析各节点的值(实现方法)

    这里,我们直接通过`getElementsByTagName`获取指定名称的所有元素节点,然后对每个节点获取其属性值。 举个具体的例子,假设我们有一个XML文件,内容如下: ```xml &lt;bookTitle&gt;Book1 &lt;Author&gt;Author1 ...

Global site tag (gtag.js) - Google Analytics