Home >Web Front-end >JS Tutorial >js 解析xml实例
先贴上本实例需要用到的xml
<code><?xml version='1.0' encoding='gb2312'?> <persons> <person> <name>z</name> <age>16</age> <weight>50</weight> <height>160</height> </person> <person> <name>李四</name> <age>17</age> <weight>51</weight> <height>165</height> </person> <person> <name>王二</name> <age>18</age> <weight>55</weight> <height>170</height> </person> <person> <name>javior</name> <age>20</age> <weight>68</weight> <height>179</height> </person> </persons> </code>
实例-:解析XML字符。
<code><script type="text/javascript"> function loadXmlString(xmlString){ var xmlDoc=null; if(!window.DOMParser && window.ActiveXObject){ //判断浏览器的类型 支持IE浏览器 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){ } } }else if(window.DOMParser && document.implementation && document.implementation.createDocument){//支持Mozilla浏览器 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; } </script></code>
实例二:解析XML文件。
<code><script type="text/javascript"> function loadXmlFile(xmlFile){ var xmlDoc=null; 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){ } } }else if(document.implementation && document.implementation.createDocument){ try{ xmlDoc = document.implementation.createDocument('','',null); }catch(e){ } } else{ return null; } if(xmlDoc!=null){ xmlDoc.async = false; xmlDoc.load(xmlFile); } return xmlDoc; } </script></code>
将xml文件或字符串转化为JS对象后,我们就可以使用xml dom来读取xml中的数据了。
代码如下:
<code><script type="text/javascript"> var persons=xml.getElementsByTagName("person"); var str=""; for(var i=0;i<persons.length;i++){ var fc= persons[i]; var name=fc.getElementsByTagName("name")[0].innerHTML; var age=fc.getElementsByTagName("age")[0].innerHTML; var weight=fc.getElementsByTagName("weight")[0].innerHTML; var height=fc.getElementsByTagName("height")[0].innerHTML; str+="name:"+name+" age:"+age+" weight:"+weight+" height:"+height+"<br/>"; } </script></code>