Javascript解析xml字符串,兼容firefox和ie

来源:互联网 发布:淘宝商品下架后再上架 编辑:程序博客网 时间:2024/06/13 02:38

Javascript解析xml字符串(不是xml文件)


在IE下,主要用ie的active,在firefox下,主要用DOMPaser,以下是源码

特别提示:网上盛伟document.implementation.createDocument('', '', null);可以创建DOM对象,我搞了半天也没弄出来

function xxx(){var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><root name=\"root\" id=\"root\">root-value<child name=\"kdc\">ky <p></p> yk</child></root>";var xmlDoc = loadXML(xml);var root = xmlDoc.getElementsByTagName("root")[0];var child1 = root.childNodes[0];alert(child1.nodeValue);//取节点的文本值child1 = root.childNodes[1];//取子节点alert(child1.attributes.getNamedItem("name").value);//取节点的属性alert(child1.childNodes[0].nodeType);//取节点的类型for(var i = 0; i< child1.childNodes.length; i ++){//注意不好用for-each//遍历子节点,并找出文本节点 var node = child1.childNodes[i];if(node.nodeType == 3){ //Node.TEXT_NODE = 3,此属性在IE下无法引用,DOM标准中文本节点的类型值固定为3alert(node.nodeValue);//取节点的文本值}}}function loadXML(xmlString){var xmlDoc;if (window.ActiveXObject){xmlDoc = new ActiveXObject('Microsoft.XMLDOM');        if(!xmlDoc) xmldoc = new ActiveXObject("MSXML2.DOMDocument.3.0");xmlDoc.async = false;xmlDoc.loadXML(xmlString);}else if (document.implementation && document.implementation.createDocument){//xmlDoc = document.implementation.createDocument('', '', null);//xmlDoc.load(xmlFile);var domParser = new DOMParser();xmlDoc = domParser.parseFromString(xmlString, 'text/xml');}else{return null;}return xmlDoc;}


原创粉丝点击