JavaScript 装载XML到数组

原创 2007年09月29日 10:17:00

 

 

/**//*
 * get all nodes's attribute and text
 
*/

function getAT(nodes)...{
    
var XMLData=[];
    
for(var i=0;i<nodes.length;i++)...{
        
var crtNode=...{};
        crtNode.$name
=nodes[i].nodeName;        
        
if(nodes[i].attributes)...{
            
for(var j=0;j<nodes[i].attributes.length;j++)...{
                debug.innerHTML
+='<i>'+nodes[i].attributes[j].name+'='+nodes[i].attributes[j].value+'</i><br>';
                crtNode[nodes[i].attributes[j].name]
=nodes[i].attributes[j].value;
            }

        }

        
if(nodes[i].hasChildNodes())...{
            
if(nodes[i].firstChild.nodeType==3)...{
                crtNode.$value
=nodes[i].firstChild.nodeValue;
            }
else...{
                crtNode.$value
=null;
                
var childNode=getAT(nodes[i].childNodes);
                debug.innerHTML
+='<u>'+childNode[0].$name+'</u><br>';
                crtNode[childNode[
0].$name]=childNode;
            }

        }

        XMLData.push(crtNode);
    }
    
    
return XMLData;
}

/**//*
 * Load XML into an array, each item of this array is an object. every object has at least two property: $name which is the xml node name and $value which is the text of the xml node(maybe null). 
 * @usage:
     xml=loadXML('game.xml');
 
*/

var XMLMSG='';// record error message, when a parse error ouccored
var _XML='';  // save xml text
var loadXML = function(xmlFile)
...{    
    
var xmlDoc;
    
if(window.ActiveXObject)
    
...{
        xmlDoc 
= new ActiveXObject('Microsoft.XMLDOM');
        xmlDoc.async 
= false;
        xmlDoc.load(xmlFile);
    }

    
else if (document.implementation&&document.implementation.createDocument)
    
...{
        xmlDoc 
= document.implementation.createDocument(''''null);
        xmlDoc.load(xmlFile);
    }

    
else
    
...{
        XMLMSG
='Sorry, your browser doesn't support XML.'
        
return false;
    }

    
if(xmlDoc.parseError.errorCode!=0)...{
        XMLMSG
+="<br/>Error Code: ";
        XMLMSG
+=xmlDoc.parseError.errorCode;
        XMLMSG
+="<br/>Error Reason: ";
        XMLMSG
+=xmlDoc.parseError.reason;
        XMLMSG
+="<br/>Error Line: ";
        XMLMSG
+=xmlDoc.parseError.line;
        
return false;
    }

    _XML
=xmlDoc.documentElement.xml;
    
var xmlNodes=xmlDoc.documentElement.childNodes;    
    debug.innerHTML
+='<hr><font color="#ff0000">';
    
return getAT(xmlNodes);    
}

 

参考文章:
javascript解析XML的方法 作者:luke 日期:2007-05-31 URL http://www.lukee.cn/article.asp?id=396

js读取xml文件并获取文件内容

本篇文章总结收藏以供实用 其中html代码如下所示 W3School.com.cn Internal Note To: From: Message: if (window.XM...

JavaScript读取XML例子

浅谈PHP与javascript之JSON XML 数组 对象三者的区别

一、认识JSON是什么 先来说说什么是JSON。所谓json即javascript Object Notation (javaScript对象符号).它是基于JavaScript(Standar...

数组转换成XML

  • 2016年03月30日 01:08
  • 7KB
  • 下载

Spinner数组数据从arrays.xml中获取

arrays.xml中代码如下:             上海市         厦门市         福建市         北京市         天津市      ...

PHP 数组与Xml转换

  • 2012年03月27日 17:34
  • 17KB
  • 下载

staxon 实现 json 与xml 之间的转换 支持数组,属性

staxon 实现 json 与xml 之间的转换 支持数组,属性 package org; import java.io.IOException; import java.io.Strin...
  • luoww1
  • luoww1
  • 2015年12月02日 14:19
  • 2214

XML转换成数组

  • 2016年03月30日 01:10
  • 5KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaScript 装载XML到数组
举报原因:
原因补充:

(最多只允许输入30个字)