首页 > 语言 > JavaScript > 正文

JS解析XML文件和XML字符串详解

2024-05-06 14:42:55
字体:
来源:转载
供稿:网友

JS解析XML文件

<script type='text/javascript'>loadXML = function(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;}</script>

JS解析XML字符串

<script type='text/javascript'>loadXML = function(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;}</script>

测试XML

<?xml version="1.0" encoding="utf-8" ?><DongFang><Company><cNname>1</cNname><cIP>1</cIP></Company><Company><cNname>2</cNname><cIP>2</cIP></Company><Company><cNname>3</cNname><cIP>3</cIP></Company><Company><cNname>4</cNname><cIP>4</cIP></Company><Company><cNname>5</cNname><cIP>5</cIP></Company><Company><cNname>6</cNname><cIP>6</cIP></Company></DongFang>

使用方法

var xmldoc=loadXML(text.xml)var elements = xmlDoc.getElementsByTagName("Company");for (var i = 0; i < elements.length; i++) {var name = elements[i].getElementsByTagName("cNname")[0].firstChild.nodeValue;var ip = elements[i].getElementsByTagName("cIP")[0].firstChild.nodeValue;}            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选