JS解析XML的实现代码


Posted in Javascript onNovember 12, 2009

JS代码:

<script language="javascript" type="text/javascript"> 
//需要读取的xml文件 
var uRl = "jsReadXml.xml"; 
var xmlDoc; 
//初始化,给上述定义变量赋值 
// function showcurcity(){ 
if(window.ActiveXObject) 
{ 
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
xmlDoc.async="false" 
xmlDoc.load(uRl); 
getvalue(); 
} 
else if(document.implementation && document.implementation.createDocument) 
{ 
xmlDoc=document.implementation.createDocument("", "root", null); 
xmlDoc.load(uRl); 
xmlDoc.onload=getvalueff; 
} 
// else { 
// return null; 
// } 
// } 
function getvalue() 
{ 
var nodes=xmlDoc.documentElement.childNodes; 
var now=new Date(); 
for(i=0;i<nodes.length;i++){ 
var value=nodes.item(i).childNodes.item(0).text ; 
alert(nodes.item(i).childNodes.item(1).text); 
alert(nodes.item(i).childNodes.item(2).text); 
} 
} 
function getvalueff(){ 
var cCode=xmlDoc.getElementsByTagName("date"); 
var now = new Date(); 
var nowvalue=now.getFullYear()+'年'+(now.getMonth()+1)+'月'+now.getDate()+'日'; 
for(i=0;i<cCode.length;i++) 
{ 
alert(xmlDoc.getElementsByTagName("imgsrc")[i].childNodes[0].nodeValue); 
alert(xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeValue); 
alert(xmlDoc.getElementsByTagName("url")[i].childNodes[0].nodeValue); 
} 
} 
</script>

xml代码:
<?xml version="1.0" encoding="UTF-8" ?> 
<root> 
<imags> 
<imgsrc>images/ad-01.jpg</imgsrc> 
<title>胡志明市</title> 
<url>http://torchrelay.beijing2008.cn/cn/journey/hochiminhcity/</url> 
</imags> 
<imags> 
<imgsrc>images/ad-02.jpg</imgsrc> 
<title>香港2</title> 
<url>http://torchrelay.beijing2008.cn/cn/journey/hongkong/</url> 
</imags> 
<imags> 
<imgsrc>images/ad-03.jpg</imgsrc> 
<title>香港3</title> 
<url>http://torchrelay.beijing2008.cn/cn/journey/hongkong/</url> 
</imags> 
<imags> 
<imgsrc>images/ad-04.jpg</imgsrc> 
<title>香港4</title> 
<url>http://torchrelay.beijing2008.cn/cn/journey/hongkong/</url> 
</imags> 
<imags> 
<imgsrc>images/ad-05.jpg</imgsrc> 
<title>香港5</title> 
<url>http://torchrelay.beijing2008.cn/cn/journey/hongkong/</url> 
</imags> 
</root>

下面的文章也可以一同参考下
我看IE与FF------Js读取xml文件
我几天为了实现一个小小的功能(奥运圣火传递路线).Js读取了下xml文件,为了适应IE与FF还是费了一点时间的.
<script language="javascript" type="text/javascript"> 
var xmlDoc; 
function showcurcity() 
{ 
if(window.ActiveXObject) 
{ 
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
xmlDoc.async="false" 
xmlDoc.load("OlyCity.xml"); 
getvalue(); 
} 
else if(document.implementation && document.implementation.createDocument) 
{ 
xmlDoc=document.implementation.createDocument("", "root", null); 
xmlDoc.load('OlyCity.xml'); 
xmlDoc.onload=getvalueff; 
} 
else 
{ 
return null; 
} 
} 
function getvalue() 
{ 
var nodes=xmlDoc.documentElement.childNodes; 
var now=new Date(); 
for(i=0;i<nodes.length;i++){ 
var value=nodes.item(i).childNodes.item(0).text ; 
if(value==now.toLocaleDateString()) 
{ 
window.document.getElementById('curcity').innerText=nodes.item(i).childNodes.item(1).text; 
window.document.getElementById('curcity').href =nodes.item(i).childNodes.item(2).text; 
} 
} 
} 
function getvalueff(){ 
var cCode=xmlDoc.getElementsByTagName("date"); 
var now = new Date(); 
var nowvalue=now.getFullYear()+'年'+(now.getMonth()+1)+'月'+now.getDate()+'日'; 
for(i=0;i<cCode.length;i++) 
{ 
var value=cCode[i].childNodes[0].nodeValue; 
if(value==nowvalue) 
{ 
window.document.getElementById('curcity').href =xmlDoc.getElementsByTagName("url")[i].childNodes[0].nodeValue;; 
window.document.getElementById('curcity').childNodes[0].nodeValue=xmlDoc.getElementsByTagName("city")[i].childNodes[0].nodeValue; 
} 
} 
} 
setInterval(showcurcity,1000); 
</script>

以下是xml的片断.
<?xml version="1.0" encoding="gb2312" ?> 
<root> 
<citymessage> 
<date>2008年4月29日</date> 
<city>胡志明市</city> 
<url>http://torchrelay.beijing2008.cn/cn/journey/hochiminhcity/</url> 
</citymessage> 
<citymessage> 
<date>2008年4月30日</date> 
<city>香港</city> 
<url>http://torchrelay.beijing2008.cn/cn/journey/hongkong/</url> 
</citymessage> 
</root>
Javascript 相关文章推荐
加载 Javascript 最佳实践
Oct 30 Javascript
js模拟点击事件实现代码
Nov 06 Javascript
javascipt匹配单行和多行注释的正则表达式
Nov 20 Javascript
jQuery获取当前对象标签名称的方法
Feb 07 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
Feb 23 Javascript
JavaScript实现找出数组中最长的连续数字序列
Sep 03 Javascript
使用jQuery操作HTML的table表格的实例解析
Mar 13 Javascript
JS中artdialog弹出框控件之提交表单思路详解
Apr 18 Javascript
js 去掉字符串前后空格实现代码集合
Mar 25 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
Aug 17 Javascript
利用JS实现scroll自定义滚动效果详解
Oct 17 Javascript
关于JavaScript 中 if包含逗号表达式
Nov 27 Javascript
跨域表单提交状态的变相判断代码
Nov 12 #Javascript
JS 中document.URL 和 windows.location.href 的区别
Nov 11 #Javascript
ASP中进行HTML数据及JS数据编码函数
Nov 11 #Javascript
javascript 日期常用的方法
Nov 11 #Javascript
Jquery在IE7下无法使用 $.ajax解决方法
Nov 11 #Javascript
jQuery 白痴级入门教程
Nov 11 #Javascript
Javascript 解疑
Nov 11 #Javascript
You might like
Zerg兵种介绍
2020/03/14 星际争霸
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
浅谈php中fopen不能创建中文文件名文件的问题
2017/02/06 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
React组件refs的使用详解
2018/02/09 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
vue 插件的方法代码详解
2019/06/06 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
[55:03]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.20
2020/11/20 DOTA
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
解决python删除文件的权限错误问题
2018/04/24 Python
浅谈Python的list中的选取范围
2018/11/12 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
python MD5加密的示例
2020/10/19 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
新任教师自我鉴定
2014/02/24 职场文书
学校周年庆活动方案
2014/08/22 职场文书
法院执行局工作总结
2015/08/11 职场文书
mysql的数据压缩性能对比详情
2021/11/07 MySQL
Redis唯一ID生成器的实现
2022/07/07 Redis