使用JavaScript解析xml文件或xml格式字符串

xinjiang 贡献于2011-08-23

作者 微软用户  创建于2010-10-29 07:50:00   修改者微软用户  修改于2010-10-29 07:50:00字数1746

文档摘要:javascript中,不论是解析xml文件,还是xml格式的字符串,都是通过DOM对象来进行操作的。
关键词:

使用JavaScript解析xml文件或xml格式字符串 javascript中,不论是解析xml文件,还是xml格式的字符串,都是通过DOM对象来进行操作的。          假定xml格式字符串为xmlStr,首先加载xml   // 我们假定不知道客户端使用的浏览器,所以对于XMLDom的创建,尽量满足多浏览器的环境 var xmlDoc; //如果ie 此判断和下面其他浏览器的判断可以忽略,此处只为说明代码 if (window.ActiveXObject) { // 由于不知道ie的版本,尽量保持程序的兼容性 var ARR_ACTIVEX = ["MSXML4.DOMDocument","MSXML3.DOMDocument","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XmlDom"]; // XMLDOM是否创建成功的标志 var XmlDomflag = false; for (var i = 0;i < ARR_ACTIVEX.length && !XmlDomflag ;i++) { try { // 尝试创建对象,如果不能正常创建,它会抛出一个错误 var objXML = new ActiveXObject(ARR_ACTIVEX[i]); // 如果程序能运行到这里,则说明XMLDom对象已经成功创建,所以保存 xmlDoc = objXML; XmlDomflag = true; } catch (e) { } } if (xmlDoc) { xmlDoc.async = false; // 加载xml,如果是xml文件的话则调用load(xmlFile) xmlDoc.loadXML(xmlStr); } else { return; } } else if (document.implementation && document.implementation.createDocument) { // 判断是不是遵从标准的浏览器 // 建立DOM对象的标准方法 xmlDoc = document.implementation.createDocument('', '', null); xmlDoc.loadXML(xmlStr); } else { // 进这里我也没辙了 return; }    XMLDOM对象出来了,接下来便是对Dom的操作部分,随便写一个xml字符串简单举个例子:      var xml; xml = '0成功'; 经过上面的。。。加载进来后 // 加载进来地xml~~ var temp = xmlDoc.xml; // 取得所有Field 元素 var elementList; elementList = xmlDoc.getElementsByTagName('Field'); // 遍历 for (var j = 0;j < elementList.length; j++) { var value; // 取得当前元素属性id的值 value = elementList[j].getAttribute('id'); alert(value); // 可以设定当前元素属性id的值 elementList[j].setAttribute('id','ooo'); var childs; // 当前元素的子节点 childs = list[j].childNodes; // 如果没有子节点(...间没有任何值)就不能取子节点,否则会出错。比如id是ICNO的那个元素 if (childs.length > 0) { // childs[0]是第一个当然就代表当前元素的值了,nodeValue可以取得这个节点的值。 alert(childs[0].nodeValue); } }

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 1 人已下载

下载文档