`
baron.unsafe
  • 浏览: 79027 次
社区版块
存档分类
最新评论

javascript 解析xml (chrome,firefox,safari,Opera,ie)

阅读更多
注:不允许任何形式的转载
  	//loadXMl
  	function loadXml(xmlFile){
  		var xmlDoc;
  		if(window.ActiveXObject){	//IE
  			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  			xmlDoc.async=false;
  			xmlDoc.load(xmlFile);
  		}else if(document.implementation && document.implementation.createDocument){//firefox  opera
	  		try{
			  		xmlDoc = document.implementation.createDocument("", "", null);  
					xmlDoc.async = false;  
					xmlDoc.load(xmlFile);
			}catch(e){
				  try //Google Chrome  safari
				  {    
					   var xmlhttp = new window.XMLHttpRequest();  
					   xmlhttp.open("GET",xmlFile,false);    
					   xmlhttp.send(null);    
					   xmlDoc = xmlhttp.responseXML;  
				  }    
				  catch(e)    
				  {    
				   error=e.message;    
				   alert(error);  
				  } 
			}  
  		}else{
  			return null;
  		}
  		return xmlDoc;
  	}
	//checkXMLDocObj
	function chechXMLDocObj(xmlFile){
		var xmlDoc=loadXml(xmlFile);
		if(null==xmlDoc){
			alert("浏览器不支持");
			return false;
		}
		return xmlDoc;
	}
		//$
		var $=function(id){
			 return document.getElementById(id); 
		}
		function loadIbookXml(){
		var xmlDoc=chechXMLDocObj("ibook.xml");
		var root=xmlDoc.documentElement;
		//book下的接点
		var x=root.childNodes;
		//	alert(root.getElementsByTagName('book')[0].childNodes);
		var update= (null == root.getElementsByTagName('update')[0])?"":root.getElementsByTagName('update')[0].firstChild.data;
		var name = (null == root.getElementsByTagName('name')[0])?"":root.getElementsByTagName('name')[0].firstChild.data;	
		var title = (null == root.getElementsByTagName('title')[0])?"":root.getElementsByTagName('title')[0].firstChild.data;
		var Keywords = (null == root.getElementsByTagName('Keywords')[0])?"":root.getElementsByTagName('Keywords')[0].firstChild.data;
		var description = (null == root.getElementsByTagName('description')[0])?"":root.getElementsByTagName('description')[0].firstChild.data;	
		var contents_size = (null == root.getElementsByTagName('contents_size')[0])?"":root.getElementsByTagName('contents_size')[0].firstChild.data;		
		var total = (null == root.getElementsByTagName('total')[0])?0:parseInt(root.getElementsByTagName('total')[0].firstChild.data);		
		
		var w=null,h=null;
		/*遍历div接点*/
		for(var i=0 ;i<x.length;i++){
			if("div"==x[i].nodeName){
				//div 接点的子节点
				var d=root.getElementsByTagName('div')[0].childNodes;
				/*得到w,h的值*/
				for(var j=0 ; j<d.length;j++){
					if("w" == d[j].nodeName){
						w = d[j].firstChild.data;	
					}else if("h"==d[j].nodeName){
						h = d[j].firstChild.data;
						break;
					}
				}//for-w,h
			}
		}//for()
		w=(null==w)?1024:w;
		h=(null==h)?768:h;
		
		
		var zoom_s=(null == root.getElementsByTagName('zoom_s')[0]) ? "" : root.getElementsByTagName('zoom_s')[0].firstChild.data;
		var over_zoom=(null==root.getElementsByTagName('over_zoom')[0])?"":root.getElementsByTagName('over_zoom')[0].firstChild.data;
		
		var pagelink_color=(null==root.getElementsByTagName('pagelink_color')[0])?"":root.getElementsByTagName('pagelink_color')[0].firstChild.data;
		var pagelink_highlight=(null==root.getElementsByTagName('pagelink_highlight')[0])?"":root.getElementsByTagName('pagelink_highlight')[0].firstChild.data;
		var pagesearch_color=(null==root.getElementsByTagName('pagesearch_color')[0])?"":root.getElementsByTagName('pagesearch_color')[0].firstChild.data;
		var pagesearch_color_selected=(null==root.getElementsByTagName('pagesearch_color_selected')[0])?"":root.getElementsByTagName('pagesearch_color_selected')[0].firstChild.data;
		var point_scale_w=(null==root.getElementsByTagName('point_scale_w')[0])?"":root.getElementsByTagName('point_scale_w')[0].firstChild.data;
		var point_scale_h=(null==root.getElementsByTagName('point_scale_h')[0])?"":root.getElementsByTagName('point_scale_h')[0].firstChild.data;
	
		/*true false*/
		var toright=(null!=xmlDoc.getElementsByTagName("toright"))? true:false;
		var cover=(null!=xmlDoc.getElementsByTagName("cover"))?true:false;
		var streaming=(null!=xmlDoc.getElementsByTagName("streaming"))?true:false;
		var download=(null!=xmlDoc.getElementsByTagName("download"))?true:false;
		var textonly=(null!=xmlDoc.getElementsByTagName("textonly"))?true:false;
		var search=(null!=xmlDoc.getElementsByTagName("search"))?true:false;
		var pen=(null!=xmlDoc.getElementsByTagName("pen"))?true:false;
		
		document.write("update:"+update+"<br/>"
		+"\n"+"name:"+name	+"<br/>"
		+"\n"+"title:"+title+"<br/>"
		+"\n"+"total:"+total+"<br/>"
		+"\n"+"description:"+description+"<br/>"
		+"\n"+"contents_size:"+contents_size+"<br/>"
		+"\n"+"w:"+w+"<br/>"
		+"\n"+"h:"+h+"<br/>"
		+"\n"+"zoom_s:"+zoom_s+"<br/>"
		+"\n"+"over_zoom:"+over_zoom+"<br/>"
		+"\n"+"pagelink_color:"+pagelink_color+"<br/>"
		+"\n"+"pagelink_highlight:"+pagelink_highlight+"<br/>"
		+"\n"+"pagesearch_color:"+pagesearch_color+"<br/>"
		+"\n"+"pagesearch_color_selected:"+pagesearch_color_selected+"<br/>"
		+"\n"+"toright:"+toright+"<br/>"
		+"\n"+"cover:"+cover+"<br/>"
		+"\n"+"streaming:"+streaming+"<br/>"
		+"\n"+"download:"+download+"<br/>"
		+"\n"+"textonly:"+textonly+"<br/>"
		+"\n"+"search:"+search+"<br/>"
		+"\n"+"pen:"+pen
		);
	}



XML
<?xml version="1.0" encoding="UTF-8"?>
<book>
<update>123456</update>
  <name>asdfghjk</name>
  <title>abm</title>
  <total>45</total>
  <description>abc</description>
  <contents_size>78G</contents_size>
  <toright/>
  <cover/>
  <div>
    <w>789</w>
    <h>659</h>
  </div>
  <zoom_s>1,2</zoom_s>
  <over_zoom>5</over_zoom>
  <pagelink_color>000255255</pagelink_color>
  <pagelink_highlight>2</pagelink_highlight>
  <pagesearch_color>255000255</pagesearch_color>
  <pagesearch_color_selected>255000000</pagesearch_color_selected>
  <point_scale_w>2.4</point_scale_w>
  <point_scale_h>2.1826</point_scale_h>
  <streaming/>
  <download/>
  <textonly/>
  <search/>
  <pen/>
</book>


注:不允许任何形式的转载
分享到:
评论
1 楼 lbsnm 2014-03-05  
var xmlhttp = new window.XMLHttpRequest();   
                   xmlhttp.open("GET",xmlFile,false);     
                   xmlhttp.send(null);     
                   xmlDoc = xmlhttp.responseXML; 
Safari浏览器代码,找了好长时间! 

相关推荐

    scrolltotop:适用于Chrome,Firefox,Safari,Opera的Scroll To Top扩展

    Chrome,Firefox,Safari,Opera的浏览器扩展。 | | 下载: 下载 下载 下载 下载 (已淘汰) 有助于: 通过共享此页面来传播信息。 在 , , 画廊上对扩展名进行评分。 通过支持发展。 帮我翻译插件。 ...

    mimic.js:JavaScript XML-RPC 客户端支持同步和异步请求

    它与主要浏览器(IE、Firefox、Opera、Safari 和 Chrome)兼容。 如何使用 使用 Mimic 非常简单,你只需要产生一个请求,然后处理响应。 为此,您只需使用两个小对象XmlRpcRequest和XmlRpcResponse 。 同步请求...

    Mimic - JavaScript XML-RPC Client-开源

    Mimic是客户端XML-RPC协议JavaScript实现,与IE,Firefox,Opera,Safari和Chrome兼容。 Mimic能够生成XML-RPC请求并处理XML-RPC响应,从而允许创建WebService客户端。

    CODEIT-IDE:CODEIT是一个简单的IDE,您可以处理Javascript,HTML,PHP,CSS,SQL,LESS,MD,XML,还可以在浏览器中直接在线开发HTML5应用程序(最好与Google Chrome结合使用)

    您也可以在以下位置找到CODEIT IDE:要求CODEIT与以下浏览器兼容:Chrome,Safari,Firefox,Opera。 某些功能(例如通过“拖放”从计算机上载文件到CODEIT文件浏览器)仅适用于Chrome。 CODEIT的服务器部分是使用...

    超快的cssselector引擎kquery2.0.zip

    兼容所有主流浏览器ie6 /chrome/firefox/opera/safari, 压缩和gzip之后仅8kb大小。智能编译引擎优化去除不必要的逻辑, 查询速度远胜于Szizzle, nwmatcher, peppy, dojo/query, kquery不会像peppy那样缓存查询结果...

    js-merge-xml:合并多个XML源

    支持主要浏览器(Chrome,Edge,IE,Firefox,Safari,Opera)和NodeJS(如下所示)。 MergeXML也用PHP实现(请参阅 )。 用法 可以包含MergeXML类: 作为CommonJS模块加载: const MergeXML = require('./...

    用javascript为页面添加天气显示实现思路及代码

    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”); } xml

    龙博AJAX框架 4.0.zip

    • 多浏览器兼容, 包括IE6 , firefox1.5 , opera9 , safari3 和 Google Chrome. • 大量的API文档 和示例. • 不断更新的代码片段供程序员参考. • 极为方便的所见即所得的界面编辑器. Web界面使用拖拽轻松搞定,...

    9个javascript语法高亮插件 推荐

    下面介绍的是一些纯javascript实现的语法高亮插件...2. SHJSSHJS 是js语法高亮插件的代表,它支持很多编程语言,兼容Firefox 2 &3, IE 6 & 7, Opera 9.6, Safari 3.2 &Chrome 1.0。3. beautyOfCodebeautyOfCode 是一

    简单了解JavaScript操作XPath的一些基本方法

    也许大家现在很多没有注意到,DOM Level 3 XPath指定的接口已经被Firefox,Safari, Chrome, and Opera实现了。他们所实现的核心接口就是XPathEvaluator,它包含一些能够使用xpath表达式进行工作的方法,最主要的方法...

    使用 HTML5 canvas 进行 Web 绘图

    目前,canvas 已成为 HTML5 规范中的事实性标准,并且已经被 Firefox 3.0+, Safari 3.0+, Chrome 3.0+, Opera10.0+ 等浏览器所支持。最近(本文撰写之时),IE 也正式宣称将在其 9.0 版本之后,开始对 canvas 元素...

    CrossUI:CrossUI是一个免费的跨浏览器Javascript框架,具有针对富Web应用程序的前沿功能

    CrossUI CrossUI是一个免费的Cross-Browser Javascript框架,具有针对SPA(单页应用程序)Web应用程序的尖端... 跨浏览器的广泛兼容性,IE6 +,firefox3 +,opera9 +,safari3 +和Google Chrome。 完整的API文档以及

    svg-mini-lecture:SVG 和 Snap.svg 迷你讲座

    Snap.svg 介绍,包括单页应用程序概念、相关库和 Angular 功能示例。...专为现代浏览器(IE9 及更高版本、Safari、Chrome、Firefox 和 Opera)设计 支持遮罩、剪裁、图案、完整渐变、组等功能 适用于现

    酷炫的爆栈网源码.zip

    SpiderMonkey (Firefox) Nitro (Safari) Trident (IE) Blink / prev. WebKit (Chrome) Gecko (Firefox) WebKit (Safari) Blink / prev. Presto (Opera) ...

    原生 JS Ajax,GET和POST 请求实例代码

    javascript/js的ajax的GET请求代码如下所示: [removed] ... // code for IE7+, Firefox, Chrome, Opera, Safari  xmlhttp=new XMLHttpRequest();  }else{// code for IE6, IE5  xmlhttp=new Act

    程序员面试刷题的书哪个好-Front-end-Interview:前端面试

    Firefox:gecko内核 Safari:webkit内核 Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核 Chrome:Blink(基于webkit,Google与Opera Software共同开发) 介绍一下你对浏览器内核的理解? 主要分成两...

    龙博AJAX框架 v4.0

    • 多浏览器兼容, 包括IE6+, firefox1.5+, opera9+, safari3+ 和 Google Chrome. • 大量的API文档 和示例. • 不断更新的代码片段供程序员参考. • 极为方便的所见即所得的界面编辑器. Web界面使用拖拽轻松搞定...

    phoenix.webui.framework:基于WebDriver的WebUI自动化测试框架

    凤凰自动测试本项目是一个基于的Web自动测试框架,通过该框架可以简化测试人员的学习技巧,只...身份证号码,手机号,邮编等数据支持操作日志生成GIF动态图片支持主流的浏览器(即firefox,chrome,opera,safari)以及

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: ...

    解读html5关于html5的应用与认识

    这些标签被除了IE 外的所有现代浏览器(Firefox 3+、Safari 3.1+、Chrome 2+、and Opera 9.6+)支持。Javascript 提供了document.createElement(tagName) 的方法,让你可以用来创建新的 HTML5 标签。代替自己创建...

Global site tag (gtag.js) - Google Analytics