原文地址为:
JS解析XML文件和XML字符串
转载请注明本文地址: JS解析XML文件和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>
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>
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 >
< 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;
}
转载请注明本文地址: JS解析XML文件和XML字符串