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= ...
随机推荐
- javascript 下拉列表 自动取值 无需value
<select id="applyType" name="$!{status.expression}" class="inp" onc ...
- JAVA之旅(二十七)——字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律
JAVA之旅(二十七)--字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律 我们继续来聊聊I/O 一.字节流的缓冲区 这 ...
- SDL2源代码分析7:显示(SDL_RenderPresent())
===================================================== SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL ...
- SDL2源代码分析5:更新纹理(SDL_UpdateTexture())
===================================================== SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL ...
- Java中引用传递
//Java中的引用传递 class Ref1{ int temp = 10 ; String Str = "hello"; } public class HelloWorld { ...
- lk中内联调用的dsb()
lk中内联调用的dsb() 比如lk的uart_dm_init()函数就调用了dsb() /* Configure the uart clock */ clock_config_uart_dm(id) ...
- flume1.4.0 保存文件到hdfs错误调试
报错如下 解决方案:将FLUME_HOME/lib目录下的jar文件,替换成HADOOP_HOME/share/hadoop/common/lib下版本更新的jar文件
- (Tomcat)服务器之web应用的虚拟目录映射和主机搭建
首先来了解一下web的虚拟目录映射和主机搭建的知识 第一:web的虚拟目录映射 首先我们要知道什么叫做web的虚拟目录映射,这个很好理解的,就是将我们本地硬盘上的web应用映射出一个供外界用户访问的地 ...
- 根据Schema写出XML文档四部曲
Schema约束文档本身就是一个XML文档,扩展名为xsd 难点:XML文档的根元素怎么写? 如下4步曲: a.首先看Schema文档,找到根元素 <?xml version="1.0 ...
- 大多数时候是软件的Bug,但是... 有时候的确是硬件的问题!
在我们性能最好的服务器中,有一台是从之前的64位测试项目中遗留下来的.那台机器配有皓龙250双核处理器,内存有8 GB.服役了一年之后,那种配置仍然是相当不错的.它还有贴心的升级方案可选:它的泰安Th ...