javascript 读取xml 解析xml文件

js读取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;
}

 

js读取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;
}

 

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>

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值