但是是XML字符串,则在两种浏览器下就会有所不同,IE下可以直接使用LoadXML方法解析XML字符串,而在FF下则要使用DOMParser 对象的parseFromString() 方法即 var oParser=new DOMParser(); xmlDoc=oParser.parseFromString(xmlStr,"text/xml"); 为了在两种浏览器中能通用,我想到了javascritp的发生异常的处理方式,就是try...catch... 复制代码 代码如下:function toXML(strxml){ try{ xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.loadXML(strxml); } catch(e){ var oParser=new DOMParser(); xmlDoc=oParser.parseFromString(strxml,"text/xml"); } return xmlDoc; }
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]看,不管在ie还是ff中都弹出了1400吧!! 复制代码 代码如下:function FormatToXml(strXml){ var isIE = function(){ var IE = /msie/i.test(navigator.userAgent); return IE; } var Exc = function(){ var XmlDoc = null; if (isIE()) { XmlDoc = new ActiveXObject("Microsoft.XMLDOM"); XmlDoc.loadXML(strXml); }else{ //FireFox2.0、Safari2.0 XmlDoc = (new DOMParser()).parseFromString(strXml, "text/xml"); } return XmlDoc; } return Exc(); } 功能是一样的,都是为了在ie和ff中处理xml字符串的解析问题。不过在无忧上有些人说xml字符串要有<?xml version="1.0" encoding="gb2312"?>,可我测试后若有xml version="1.0" encoding="gb2312"?>,解析结果不一致,所以我上面的例子没有加这些字符。
推荐阅读
javascript一点特殊用法
,可以交换如: <script type="text/javascript"> /*function update() { var name = dwr.util.getValue("demoName"); Demo.sayHello(name, function(data){ dwr.util.setValue(">>>详细阅读
本文标题:javascript解析xml字符串的函数
地址:http://www.17bianji.com/kaifa2/JS/29657.html
1/2 1