zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    MySQL:数据库优化,看这篇就够了
    不使用synchronized和lock,如何实现一个线程安全的单例
    理解Spring:IOC的原理及手动实现
    终于放弃了单调的swagger-ui了,选择了这款神器—knife4j
    TP5.0.24 验证器内置规则中max 如果输入中文 验证长度错误的问题
    laravel 5.5 api接口开发:JWT安装+实现API token 认证
    homestead 代码与本地代码不同步的解决方法
    laravel 5.5 api接口开发: 安装dingo/api
    php base_decode 函数将base64编码转换图片遇到的问题
    thinkphp 5.0 部署新网空间隐藏index.php入口
  • 原文地址:https://www.cnblogs.com/qianxiaox/p/14085786.html
Copyright © 2011-2022 走看看