六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 24|回复: 0

java解析xml文件或者xml字符串

[复制链接]

升级  78.67%

44

主题

44

主题

44

主题

秀才

Rank: 2

积分
168
 楼主| 发表于 2013-1-29 08:34:05 | 显示全部楼层 |阅读模式
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;               }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表