`
fys124974704
  • 浏览: 137313 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

javascript解析xml文件(一)

阅读更多
页面文件已经能够包含html和js代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>demo1.html</title>

		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="this is my page">
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">

		<script language="javascript" type="text/javascript">
			var xhai_xml;
			function xhai_GetXML(){
				try{
			 	    xhai_xml = new ActiveXObject("Microsoft.XMLDOM");
				    xhai_xml.async=true;
				    xhai_xml.onreadystatechange = GetReadyIE;
				    xhai_xml.load("datafile.xml");
			 	}catch(Exception){
			 		var record;
					xhai_xml = document.implementation.createDocument("","M2MDoc",null);
					xhai_xml.async=false;
					xhai_xml.load("datafile.xml");
					//alert(xhai_xml.getElementsByTagName("SPID")[0].firstChild.nodeValue);
					record = "SPID:"+xhai_xml.getElementsByTagName("SPID")[0].firstChild.nodeValue+"<br>";
					//alert(xhai_xml.getElementsByTagName("SPName")[0].firstChild.nodeValue);
					record = record + "SPName:"+ xhai_xml.getElementsByTagName("SPName")[0].firstChild.nodeValue + "<br>";
					record = record + "MovieID | MovieName | Class |<br>";
					//alert(xhai_xml.getElementsByTagName("Item").length);
					var items = xhai_xml.getElementsByTagName("Item");
					for(var i = 0 ; i < items.length ; i++){
						//alert(items[i].attributes.length);
						var attributes = items[i].attributes;
						for(var j = 0 ; j < attributes.length ; j++){
							//alert(attributes[j].value);
							record = record + attributes[j].value + "|";
						}
						record = record + "<br>";
					}
					
					var page_attributes = xhai_xml.getElementsByTagName("Page")[0].attributes;
					record = record + "Name:" + page_attributes[0].value+"  ";
					record = record + "AllPage" + page_attributes[1].value+"  ";
					record = record + "Count" + page_attributes[2].value+"  ";	
					document.write(record);
			 	}
			}
			
			function GetReadyIE(){
					 if(xhai_xml.readyState==4){
					     if(xhai_xml.parseError.errorCode==0){
					  		  document.write("SPID:"+xhai_xml.documentElement.selectNodes("SPID")(0).text+"<br />");
					 		  document.write("SPName:"+xhai_xml.documentElement.selectNodes("SPName")(0).text+"<br />");
					 		  document.write("<br />");
					  		  var i,c,d,Line;
					  		  var MovieList = xhai_xml.documentElement.selectNodes("//MovieList/Item");
					 		  var j=MovieList.length;
						      Line = MovieList.item(0);
							  d=Line.attributes.length;
							  for(c=0;c<d;c++){
							  	 document.write(Line.attributes(c).name+" | ");
						 	  }
							  document.write("<br />");
							  for(i=0;i<j;i++){
								  	Line = MovieList.item(i);
								    d=Line.attributes.length;
								    for(c=0;c<d;c++){
								    		document.write(Line.attributes(c).value+" | ");
								    }
								    document.write("<br />");
							   }
							   document.write("<br />");
							   var page = xhai_xml.documentElement.selectNodes("//Page").item(0)
							   j=page.attributes.length;
							   for(i=0;i<j;i++){
								   	document.write(page.attributes(i).name+":");
								   	document.write(page.attributes(i).value+" ");
							   }
							}
							delete(xhai_xml);
					    }
			}
			xhai_GetXML();
		</script>
	</head>

	<body>

	</body>
</html>
datafile.xml
<?xml version="1.0" encoding="gb2312"?>
<M2MDoc>
    <SPID>3</SPID>
    <SPName>5</SPName>
    <MovieList>
        <Item MovieID="103704" MovieName="忍" Class="动作片" />
        <Item MovieID="103701" MovieName="风斗士" Class="动作片" /> 
        <Item MovieID="103693" MovieName="无血无泪11" Class="动作片" />
    </MovieList>
    <Page Number="1" AllPage="3" Count="45"/>
</M2MDoc>
 

 

 兼容IE和Firefox浏览器

4
0
分享到:
评论
1 楼 fys124974704 2008-06-16  
在 catch 可以有另外一个写法,这样写我感觉更标准,更容易看明白!
var record;
xhai_xml = document.implementation.createDocument("","M2MDoc",null);
xhai_xml.async=false;
xhai_xml.load("datafile.xml");

record = "SPID:"+xhai_xml.getElementsByTagName("SPID")[0].firstChild.nodeValue+"<br>";

record = record + "SPName:"+ xhai_xml.getElementsByTagName("SPName")[0].firstChild.nodeValue + "<br>";
record = record + "MovieID | MovieName | Class |<br>";

var oEvaluator = new XPathEvaluator();
var oResult = oEvaluator.evaluate("/M2MDoc/MovieList/Item",xhai_xml,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);
if(oResult != null){
var oElement = oResult.iterateNext();
while(oElement){
oElement = oResult.iterateNext();
}
}


var page_attributes = xhai_xml.getElementsByTagName("Page")[0].attributes;
record = record + "Name:" + page_attributes[0].value+"  ";
record = record + "AllPage" + page_attributes[1].value+"  ";
record = record + "Count" + page_attributes[2].value+"  ";
document.write(record);

相关推荐

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

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

    js解析XML文件

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

    javascript解析xml文件

    在JavaScript中解析XML文件是一项常见的任务,特别是在网页开发中,我们可能需要将XML数据转换为HTML以便更好地展示或处理。JavaScript提供了DOMParser API和ActiveXObject(仅限于Internet Explorer)来解析XML。...

    Javascript解析服务器端XML文件

    本文将深入探讨如何使用JavaScript在服务器端解析XML文件,并将其转化为树形菜单,以供用户交互。 首先,理解XML的基本结构至关重要。XML是一种自描述性的文本格式,通过标签来定义数据结构。例如: ```xml ...

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

    综上所述,要完成“JavaScript解析XML文件并在网页上以目录树形式显示”的任务,你需要理解XML的基本概念,熟悉JavaScript的DOM操作,掌握XML数据的解析方法,以及如何将XML数据转换为HTML结构,并通过CSS和...

    JavaScript解析XML文档成树菜单

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

    javascript 对xml文件解析

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

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

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

    JAVASCRIPT解析XML的方法总结.pdf

    JAVASCRIPT解析XML的方法总结.pdf

    JavaScript处理XML文档

    类似于浏览器解析HTML文档并展示出来的方式,MSXML解析XML文件后,将其转换为一组抽象的信息容器,即节点(Node)。这些节点表示了文档的结构和内容,使得应用程序能够读取和操作文档中的信息,而无需深入了解XML的...

    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文件

    ### JavaScript读写XML文件:深度解析与应用实例 在现代Web开发中,XML(Extensible Markup Language)作为一种标准的数据交换格式,被广泛应用于各种场景,如配置文件、数据传输等。利用JavaScript进行XML文件的...

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

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

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

    总结来说,实现JavaScript解析XML以创建多级级联下拉列表涉及的主要知识点包括:JavaScript基础、XML文件结构与解析、DOM操作、事件监听以及动态生成HTML元素。通过这些技术,可以构建出交互性强、用户体验良好的Web...

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

    在C++中,可以使用MSXML库的`IXMLDOMDocument`接口来加载并解析XML文件。以下是一个示例: ```cpp #include using namespace MSXML2; void parseXMLFile() { IXMLDOMDocumentPtr xmldoc; HRESULT hr; hr = ...

    JavaScript解析XML的方法总结.

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

    js解析xml文件的完整代码

    在JavaScript中解析XML文件是一项常见的任务,特别是在处理服务器返回的数据或者构建富客户端应用时。XML(eXtensible Markup Language)是一种结构化数据格式,它允许我们存储和传输信息,而JavaScript作为浏览器中...

    Javascript解析xml文件及SSH实现登录构建结构树例子

    JavaScript是Web开发中不可或缺的一部分,尤其在前端领域,它提供了丰富的功能来处理各种任务,包括解析XML文件。XML(eXtensible Markup Language)是一种数据交换格式,常用于存储和传输结构化数据。在JavaScript...

    解析XML特殊字符方法

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在互联网上,尤其是在数据交换、配置文件和文档存储等领域。在XML文档中,有些字符是具有特殊含义的,例如 `、`&gt;` 和 `&` 等,它们分别用于...

Global site tag (gtag.js) - Google Analytics