• javascript如何读取xml?


    JavaScript读取xml的方法:使用DOMParser对象解析XML文本并返回一个XML Document对象。然后调用parseFromString()方法读取。

    JavaScript读取xml文件:

    function loadXML(xmlFile){
            var xmlDoc=null;
            //判断浏览器的类型
            //支持IE浏览器
            if(!window.DOMParser && window.ActiveXObject){
             var xmlDomVersions = ['MSXML.2.DOMDocument.6.0','MSXML.2.DOMDocument.3.0','Microsoft.XMLDOM'];
                for(var i=0;i<xmlDomVersions.length;i++){
                    try{
                        xmlDoc = new ActiveXObject(xmlDomVersions[i]);
                        break;
                    }catch(e){
                    }
                }
            }
            //支持Mozilla浏览器
            else if(document.implementation && document.implementation.createDocument){
                try{
                    /* document.implementation.createDocument('','',null); 方法的三个参数说明
                     * 第一个参数是包含文档所使用的命名空间URI的字符串; 
                     * 第二个参数是包含文档根元素名称的字符串; 
                     * 第三个参数是要创建的文档类型(也称为doctype)
                     */
                    xmlDoc = document.implementation.createDocument('','',null);
                }catch(e){
                }
            }
            else{
                return null;
            }
    
            if(xmlDoc!=null){
                xmlDoc.async = false;
                xmlDoc.load(xmlFile);
            }
            return xmlDoc;
    }

    JavaScript读取xml字符串:

    function loadXMLStr(xmlString){
            var xmlDoc=null;
            //判断浏览器的类型
            //支持IE浏览器 
            if(!window.DOMParser && window.ActiveXObject){   //window.DOMParser 判断是否是非ie浏览器
             var xmlDomVersions = ['MSXML.2.DOMDocument.6.0','MSXML.2.DOMDocument.3.0','Microsoft.XMLDOM'];
                for(var i=0;i<xmlDomVersions.length;i++){
                    try{
                        xmlDoc = new ActiveXObject(xmlDomVersions[i]);
                        xmlDoc.async = false;
                        xmlDoc.loadXML(xmlString); //loadXML方法载入xml字符串
                        break;
                    }catch(e){
                    }
                }
            }
            //支持Mozilla浏览器
            else if(window.DOMParser && document.implementation && document.implementation.createDocument){
               try{
                 /* DOMParser 对象解析 XML 文本并返回一个 XML Document 对象。
                 * 要使用 DOMParser,使用不带参数的构造函数来实例化它,然后调用其 parseFromString() 方法
                 * parseFromString(text, contentType) 参数text:要解析的 XML 标记 参数contentType文本
                 *  的内容类型
                 * 可能是 "text/xml" 、"application/xml" 或 "application/xhtml+xml" 中的一个。
                 *  注意,不支持 "text/html"。
                   */
                    domParser = new  DOMParser();
                    xmlDoc = domParser.parseFromString(xmlString, 'text/xml');
                }catch(e){
                }
            }
            else{
                return null;
            }
    
            return xmlDoc;
    }

    广州品牌设计公司https://www.houdianzi.com PPT模板下载大全https://redbox.wode007.com

    HTML代码测试:

    <script type="text/javascript">
    window.onload = function(){
    		var text = document.getElementById('aaa').value;
    		var xmldoc=loadXMLStr(text);
    		 var elements = xmldoc.getElementsByTagName("major");
    		 for (var i = 0; i < elements.length; i++) {
    			var value = elements[i].getElementsByTagName("class")[0].firstChild.nodeValue;
    			alert(value);					
    		}
    	}
    </script>
     
    <textarea id="aaa">
    <IS>
        <year time="2014">
            <major name="Computer Science">
                <class>1401</class>
                <class>1402</class>
                <class>1403</class>
                <class>1404</class>
            </major>
            <major name="Communication Engineering">
                <class>1405</class>
                <class>1406</class>
                <class>1407</class>
                <class>1408</class>
            </major>
        </year>
     
        <year time="2013">
            <major name="Computer Science">
                <class>1301</class>
                <class>1302</class>
                <class>1303</class>
                <class>1304</class>
            </major>
            <major name="Communication Engineering">
                <class>1305</class>
                <class>1306</class>
                <class>1307</class>
                <class>1308</class>
            </major>
        </year>
    </IS>
    </textarea
  • 相关阅读:
    广播BroadcastReceiver(2)
    hunnu11544:小明的烦恼——找字符串
    Systemd启动图形界面过程
    大数据.......
    2014百度之星第一题Energy Conversion
    基于zookeeper简单实现分布式锁
    LeetCode OJ 215. Kth Largest Element in an Array 堆排序求解
    Leetcode
    Linux文件系统(七)---系统调用之open操作(一)
    Go语言Slice操作.
  • 原文地址:https://www.cnblogs.com/qianxiaox/p/14085786.html
Copyright © 2020-2023  润新知