zoukankan      html  css  js  c++  java
  • 一步一步理解XMLDOM(一)

    一、XML DOM中的节点类型
    XML DOM与HTML DOM中的节点类型相似
    1、整个XML文档是一个文档节点(Document)
    2、每个XML标签是一个元素节点(Element)
    3、在XML标签中的文本是一个文本节点(Text)
    4、在XML标签中的每个属性是一个属性节点(Attr)
    5、XML文档中的注释是一个注释节点(Comment)
    示例:
             <item       name="hello" >你好</item>
            element       attr              text


    二、解析XML文件
    1、首先创建XMLDOM对象
    IE中使用        
      new ActiveXObject("Microsoft.XMLDOM");
    Firefox,Opera        
      document.implementation.createDocument("","",null);
    Chrome,Safari,Firefox,Opera等
      var xhr = new XMLHttpRequest();
      xhr.open("GET","XMLFileNane.xml",false);
      xhr.send(null);
      xhr.responseXML;
    由于Chrome由于其安全机制限制,不能读取本地文件。
    2、其次,使用Ajax技术Get方式处理,屏蔽不同浏览器之间的差异。
    (1)创建XMLHttpRequest对象
            function createXHR() {
                return window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
            }
    (2)创建XMLDOM对象
            function createXMLDOM(xmlfile) {
                var xhr = new createXHR();
                var xmlDom = null;
                xhr.open("GET", xmlfile, false);
                xhr.send();
                xhr.onreadyStateChange = new function () {
                    if (4 == xhr.readyState && 200 == xhr.status) {
                        xmlDom = xhr.responseXML;
                    }
                }
                return xmlDom;
            }

    View Code
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>一步一步理解XMLDOM(一)---http://www.cnblogs.com/kuikui</title>
    <script type="text/javascript">
    function createXHR() {
    return window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    }

    function createXMLDOM(xmlfile) {
    var xhr = new createXHR();
    var xmlDom = null;
    xhr.open("GET", xmlfile, false);
    xhr.send();
    xhr.onreadyStateChange = new function () {
    if (4 == xhr.readyState && 200 == xhr.status) {
    xmlDom = xhr.responseXML;
    }
    }
    return xmlDom;
    }

    var xmlDom = new createXMLDOM("XMLFile.xml");
    var rootNode = xmlDom.documentElement;
    document.write("根节点的名称为:", rootNode.nodeName, "<br/>");
    document.write("根节点的值为:", rootNode.nodeValue, "<br/>");
    document.write("根节点的类型为:", rootNode.nodeType, "<br/>");

    var subNodes = rootNode.childNodes;
    for (var i = 0; i < subNodes.length; i++) {
    document.write("第", i + 1, "个子节点的名称为:", subNodes[i].nodeName, "<br/>");
    document.write("第", i + 1, "个子节点的值为:", subNodes[i].nodeValue, "<br/>");
    document.write("第", i + 1, "个子节点的类型为:", subNodes[i].nodeType, "<br/>");
    }
    </script>
    </head>
    <body>
    </body>
    </html>

    三、新年祝福
         这是年前的最后一篇文章了,马上就要过年了,祝福所有人平平安安,幸福美满,阖家欢乐。。。
        

  • 相关阅读:
    多种方法求解八数码问题
    GridView编辑删除操作
    【翻译自mos文章】v$undostat视图没有依照每10分钟进行更新,v$undostat仅仅有1行(one rows)
    支持向量机通俗导论(理解SVM的三层境地)
    bootstrap课程13 bootstrap的官方文档中有一些控件的使用有bug,如何解决这个问题
    bootstrap课程12 滚动监听如何实现(bootstrap方式和自定义方式)
    bootstrap课程11 模态框如何使用
    bootstrap课程10 从外部引入视频到页面用什么标签
    bootstrap课程9 bootstrap如何实现动画加载进度条的效果
    bootstrap课程8 bootstrap导航条在不同设备上的显示效果如何
  • 原文地址:https://www.cnblogs.com/kuikui/p/2328012.html
Copyright © 2011-2022 走看看