Fork me on GitHub

客户端的xml操作

从代理类中获得整个xml一般都转成了string类型了。。这里 我就将今天看到的一个纯JS端的操作XML脚本写下来

 

 

代码
parseSpatialSearchDoc = function(doc){
    
var xmlObj = doc;
    
var exception=null;
    
    
if(typeof xmlObj == "string"){
        
//将字符串转换为xml dom对象
        xmlObj = Utils.stringToXml(xmlObj);
    }
    
    
//解析xml文档
    var root = xmlObj.documentElement;
    
if(root==null)return null;
    
    exception
=root.getElementsByTagName("Exception")[0];
    
if(exception==null){
        
var spatialSearchObject=null;
        
var spatialSearchObjectArr=[];
        
var spatialSearchRecords=null;
        
var spatialSearchDetail=null;
        
var filed=null;
        
var spatialQueryAndRocerdArr=[];
        
var recordCount=null;
    
        recordCount
=root.getAttribute("recordCount");
         
        spatialSearchRecords
=root.getElementsByTagName("ShareServiceResult");
        
if(spatialSearchRecords!=null&&spatialSearchRecords.length!=0){
            
for(var i=spatialSearchRecords.length-1;i>=0;i--){
                spatialSearchObject
=new SpatialSearchObject();
                spatialSearchDetail
=spatialSearchRecords[i].childNodes;
                
for(var k=spatialSearchDetail.length-1;k>=0;k--){
                    filed
=spatialSearchDetail[k].tagName;
                    spatialSearchObject[filed]
=spatialSearchDetail[k].text?spatialSearchDetail[k].text:spatialSearchDetail[k].textContent;
                }
                spatialSearchObjectArr.push(spatialSearchObject);
            }
        }
        spatialQueryAndRocerdArr.push(recordCount);
        spatialQueryAndRocerdArr.push(spatialSearchObjectArr);
        
        
return spatialQueryAndRocerdArr;
    }
else return null;
}

 

 

其中有个将string装成xml的方法也贴下来:

 

代码
Utils.stringToXml = function(str){
    
var xmlDoc;
    
    
if (window.ActiveXObject) { // IE
        try {
            xmlDoc 
= new ActiveXObject("Microsoft.XMLDOM");
            
//xmldoc = new ActiveXObject("Msxml2.DOMDocument");
            
            
if(!xmlDoc){
                xmlDoc 
= new ActiveXObject("MSXML2.DOMDocument.3.0");
            }
            
            xmlDoc.loadXML(str);
        } 
catch(e){
            
//错误处理
        }
    }
else
        
if(window.XMLHttpRequest) { //firefox
            var oParser = new DOMParser();
            xmlDoc 
= oParser.parseFromString(str,"text/xml");
            
if (xmlDoc.documentElement.tagName == "parsererror") {
                
var oSerializer = new XMLSerializer();
                
//alert("An error occurred:\n错误代码: " + oSerializer.serializeToString(oXmlDom.documentElement));
            }
        }
    
    
return xmlDoc;
}

 

 

因为在急着赶项目所以没有修饰。。。下面在贴下XML格式。供大家参考:

 

代码
<?xml version="1.0" encoding="UTF-8"?><NewDataSet recordCount="5" pageIndex="1" pageSize="200"><ShareServiceResult><NAME xml:space="preserve"></NAME><GEOMETRY></GEOMETRY><ROW_NUM></ROW_NUM></ShareServiceResult></NewDataSet>

 

 

 

posted @ 2010-08-05 17:15  veSky  Views(235)  Comments(0Edit  收藏  举报