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
&& document.implementation.createDocument){
        var nodes=xml.evaluate(xpath,
xml,
null,
XPathResult.ANY_TYPE,
null);
        var result=nodes.iterateNext();
        while (result){
            callback(result);
            result=nodes.iterateNext();
        }
    }
}

JavaScript遍历XML总结的更多相关文章

  1. JavaScript操作XML

    JavaScript操作XML (一) JavaScript操作XML是通过XML DOM来完成的.那么什么是XML DOM呢?XML DOM 是: 用于 XML 的标准对象模型 用于 XML 的标准 ...

  2. XML DOM 遍历Xml文档

    1.xml文档内容: <?xml version="1.0" encoding="utf-8" ?> <bookstore> <b ...

  3. JavaScript操作XML(二)

    上一篇介绍了XML的结构以及节点之间的关系这一篇介绍浏览器内建的XML解析器以及JavaScript是如何加载XML的. 大多数浏览器都有读取和操作 XML 的内建 XML 解析器. 解析器(XML ...

  4. JavaScript操作XML工作记录

    JavaScript操作XML (一) JavaScript操作XML是通过XML DOM来完成的.那么什么是XML DOM呢?XML DOM 是: 用于 XML 的标准对象模型 用于 XML 的标准 ...

  5. ajax-异步JavaScript和XML

    什么是ajax? ajax是异步的javascript和XML ( Asynchronous Javascript And XML ) 优点:节省用户操作时间,提高用户体验.减少数据请求次数. 什么是 ...

  6. C#遍历XML文件动态加载菜单

    通过遍历XML文件动态加载菜单,顺便利用WebBrowser控件实现一个简单的桌面浏览器 效果如下: 代码如下: XMLFile1.xml <?xml version="1.0&quo ...

  7. 18. javacript高级程序设计-JavaScript与XML

    1. JavaScript与XML IE采取了下列方式: l 通过ActiveX对象来支持处理XML,而相同的对象也可以用来构建桌面应用程序 l Windows携带了MSXML库,JavaScript ...

  8. [VBS]遍历XML文档

    一.脚本源码 使用VBS脚本遍历XML文件 Option Explicit '定义常量 '元素 '文本 'CDATA '实体引用 '实体 '处理指令 '注释 '文档类型 '遍历文件 NameList. ...

  9. JavaScript遍历table的行和列

    来源:http://blog.csdn.net/bobwu/article/details/7497412 <HTML> <head> <SCRIPT LANGUAGE= ...

随机推荐

  1. MyBatis Generator For Eclipse 插件安装

    由于在ORM框架MyBatis中,实现数据表于JavaBean映射时,配置的代码比较的复杂,所以为了加快开发的效率,MyBatis官方提供了一个Eclipse的插件, 我izuoyongjiushis ...

  2. Linux之mailx的使用

    mailx是UNIX系统上用来处理邮件的工具,使用它可以发送,读取邮件.下面看看如何使用它来发送邮件. 发送格式 mailx -s subject user@xxx.com < message_ ...

  3. DAA和CMAC

    数据认证算法(DAA)  Data Authentication Algorithm DAA建立在DES之上,该算法比较陈旧,人们已经发现了这个算法的安全弱点,目前已经被废止. DAA采用DES运算的 ...

  4. mysql的left jion:就是left outer join(right join同理)

    左外连接: A left jion B on A.id=B.id 就是A表数据不动,将B表里面能和A对应上的数据补充到A表数据后 而右外连接: rignt jion 则是将A补充到B,B不动,保存全部 ...

  5. SQL Server性能优化与管理的艺术 附件下载地址

    首先感谢读者们对鄙人的支持,购买了<SQL Server性能优化与管理的艺术>,由于之前出版社的一些疏忽,附件没有上传成功,再次本人深表歉意. 请需要下载附件的读者从下面链接下载,谢谢: ...

  6. 在go中使用json作为主要的配置格式

    最近在用go重构,在先前的代码中,我们使用的ini文件进行配置,但是因为很多历史遗留问题,导致配置混乱,维护困难,自然也需要考虑重构了. 通用配置格式 通用的配置格式有很多,常用的就有ini,json ...

  7. 基于HTTP头部的注入

    基于HTTP头部的注入 常见的sql注入一般都是通过表单或请求参数进行注入,但这里给出的例子是通过HTTP协议头部进行注入. 例如一个的请求如下: GET / HTTP/1.1 Host: www.e ...

  8. 挖掘频繁项集之FP-Growth算法

    http://blog.csdn.net/pipisorry/article/details/48918007 FP-Growth频繁项集挖掘算法(Frequent-Pattern Growth, 频 ...

  9. MySQL学习笔记_8_SQL语言基础复习

    SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...

  10. 小强的HTML5移动开发之路(3)——HTML5与HTML4比较

    来自:http://blog.csdn.net/dawanganban/article/details/17652873 在前面介绍了HTML5的新特性,新标签的使用,智能表单设计,引入多媒体对象,C ...