JavaScript遍历XML总结
1:读取服务器端xml(注意不同浏览器版本的区别),使用XML可以增强系统的扩展性,只用修改XML就可以实现增加减少功能的目的。
function loadXMLDoc1(dname){ if (window.XMLHttpRequest){ xhttp= new XMLHttpRequest(); } else { xhttp= new ActiveXObject( "Microsoft.XMLHTTP" ); } xhttp.open( "GET" ,dname, false ); xhttp.send( "" ); return xhttp.responseXML; } |
2:遍历XML节点
2.1:getElementsByTagName() 方法可以在取得一个节点后继续调用获得子节点,并且返回的是一个数组(只有一个节点时也要加上[0])
2.2:.childNodes[0].nodeValue) 取得一个节点的值的办法,节点的值也是节点(文本节点)
function test() var xml=loadXMLDoc1( "book.xml" ); var bookss=xml.getElementsByTagName( "book" ); for ( var i=0;i<bookss.length;i++) document.write(bookss[i].getElementsByTagName( "title" )[0].childNodes[0].nodeValue); document.write( "</br>" ); document.write(bookss[i].getElementsByTagName( "author" )[0].childNodes[0].nodeValue); document.write( "</br>" ); document.write(bookss[i].getElementsByTagName( "year" )[0].childNodes[0].nodeValue); document.write( "</br>" ); document.write(bookss[i].getElementsByTagName( "price" )[0].childNodes[0].nodeValue); document.write( "</br>" ); } } |
3:CDATA节点值读取
3.1:如果一个XML节点中是CDATA,读取时不同浏览器的方法不同,在IE下nodeValue可以正常获取到值,在FF和chrome下通过wholeText读取。
3.2:如果一个节点浏览器不支持,可以使用if进行判断。
function testCDATA() var xml=loadXMLDoc1( "ceshi.xml" ); var HightChartsOpinions=xml.getElementsByTagName( "HightChartsOpinions" ); for ( var i=0;i<HightChartsOpinions.length;i++) var wholeTextData=HightChartsOpinions[i].childNodes[0].wholeText; var text=wholeTextData?wholeTextData:HightChartsOpinions[i].childNodes[0].nodeValue document.write(text); document.write( "</br>" ); } return false ; } |
4: 通过XPATH进行XML的遍历
4.1:XPATH可以非常强大的进行XML节点的过滤,以下的链接中包含了常用的xpath用法。
http://www.w3school.com.cn/xpath/xpath_examples.asp
4.2:xpath读取xml 不同浏览器也有不同的方法实现,这里使用回调函数处理返回节点。
function xpath() var xmlFilePath= "book.xml" ; var xpath= "/bookstore/book[price>45]" ; var callback= function (element) document.write(element.getElementsByTagName( "title" )[0].childNodes[0].nodeValue); document.write( "</br>" ); document.write(element.getElementsByTagName( "author" )[0].childNodes[0].nodeValue); document.write( "</br>" ); document.write(element.getElementsByTagName( "year" )[0].childNodes[0].nodeValue); document.write( "</br>" ); document.write(element.getElementsByTagName( "price" )[0].childNodes[0].nodeValue); document.write( "</br>" ); }; handlerXML(xmlFilePath,xpath,callback); } function handlerXML(xmlFilePath,xpath,callback) var xml=loadXMLDoc1(xmlFilePath); var action; if (window.ActiveXObject) { var nodes=xml.selectNodes(xpath); for (i=0;i<nodes.length;i++){ callback(nodes[i]); } } else if (document.implementation var nodes=xml.evaluate(xpath, null , null ); var result=nodes.iterateNext(); while (result){ callback(result); result=nodes.iterateNext(); } } } |
JavaScript遍历XML总结的更多相关文章
- JavaScript操作XML
JavaScript操作XML (一) JavaScript操作XML是通过XML DOM来完成的.那么什么是XML DOM呢?XML DOM 是: 用于 XML 的标准对象模型 用于 XML 的标准 ...
- XML DOM 遍历Xml文档
1.xml文档内容: <?xml version="1.0" encoding="utf-8" ?> <bookstore> <b ...
- JavaScript操作XML(二)
上一篇介绍了XML的结构以及节点之间的关系这一篇介绍浏览器内建的XML解析器以及JavaScript是如何加载XML的. 大多数浏览器都有读取和操作 XML 的内建 XML 解析器. 解析器(XML ...
- JavaScript操作XML工作记录
JavaScript操作XML (一) JavaScript操作XML是通过XML DOM来完成的.那么什么是XML DOM呢?XML DOM 是: 用于 XML 的标准对象模型 用于 XML 的标准 ...
- ajax-异步JavaScript和XML
什么是ajax? ajax是异步的javascript和XML ( Asynchronous Javascript And XML ) 优点:节省用户操作时间,提高用户体验.减少数据请求次数. 什么是 ...
- C#遍历XML文件动态加载菜单
通过遍历XML文件动态加载菜单,顺便利用WebBrowser控件实现一个简单的桌面浏览器 效果如下: 代码如下: XMLFile1.xml <?xml version="1.0&quo ...
- 18. javacript高级程序设计-JavaScript与XML
1. JavaScript与XML IE采取了下列方式: l 通过ActiveX对象来支持处理XML,而相同的对象也可以用来构建桌面应用程序 l Windows携带了MSXML库,JavaScript ...
- [VBS]遍历XML文档
一.脚本源码 使用VBS脚本遍历XML文件 Option Explicit '定义常量 '元素 '文本 'CDATA '实体引用 '实体 '处理指令 '注释 '文档类型 '遍历文件 NameList. ...
- JavaScript遍历table的行和列
来源:http://blog.csdn.net/bobwu/article/details/7497412 <HTML> <head> <SCRIPT LANGUAGE= ...
随机推荐
- 开源项目——小Q聊天机器人V1.1
小Q聊天机器人V1.0 http://blog.csdn.net/baiyuliang2013/article/details/51386281 小Q聊天机器人V1.1 http://blog.csd ...
- Hessian源码分析--HessianProxy
在上一篇博客 Hessian源码分析--HessianProxyFactory 中我们了解到,客户端获得的对象其实是HessianProxy生成的目标对象,当调用目标对象的方法时,会调用Hessian ...
- JavaI/O体系详解
Java中IO操作主要是指使用Java进行输入,输出操作,Java中所有的IO操作类都存放在Java.io包中,在使用时需要导入此包. 在整个Java.io包中最重要的就是5个类和一个接口.5个类指的 ...
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(四)
写到这突然有童鞋质疑,你这哪里是牛,分明是熊嘛! 仔细看了下,还真像牛.反正是这个意思.怪本猫猪牛熊不分,好在道理是一样的. 下面继续,言归正传. 添加一个空白的touchBegan方法,如果没有这个 ...
- Struts2进阶(一)运行原理及搭建步骤
Struts2进阶(一)运行原理 Struts2框架 Struts2框架搭建步骤 致力于web服务,不可避免的涉及到编程实现部分功能.考虑使用到SSH框架中的Struts2.本篇文章只为深入理解Str ...
- linux下JAVA开发的环境配置
1.去http: //java.sun.com/j2se/1.4.2/download.html 下载一个Linux Platform的JDK,建议下载RPM自解压格式的(RPM in self-ex ...
- The Singularity is Near---预测人工智能,科技走向的神书---奇点临近
比尔盖茨评价本文作者: 雷·库兹韦尔是我所知道的预测人工智能未来最权威的人.他的这本耐人寻味的书预测未来信息技术得到空前发展,将促使人类超越自身的生物极限--以我们无法想象的方式超越我们的生命. 中文 ...
- 【一天一道LeetCode】#77. Combinations
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given t ...
- org/w3c/dom/ElementTraversal 错误解决办法
org/w3c/dom/ElementTraversal 错误解决办法 不记得之前几天把什么maven依赖包删除了,今天利用htmlunit运行代码的时候报了下面的错误: Exception in t ...
- Android官方技术文档翻译——Gradle 插件用户指南(4)
最近赶项目,白天基本没时间,只有晚上在家的时候才能看一看.昨天晚上只翻译完了第四章,今天就只发第四章吧. 本文译自Android官方技术文档<Gradle Plugin User Guide&g ...