/*xml操作类
var xmlparser=new XmlParser();
var xmldoc = xmlparser.getXmldoc("data.xml");
var node=xmlparser.selectNode(xmldoc,"//wz/info");
alert(xmlparser.getText(node));
var nodes=xmlparser.selectNodes(xmldoc,"//wz/info[@title='info1']");
for(var i=0;i<nodes.length;i++){
	alert("text:"+xmlparser.getText(nodes[i])+"#title:"+nodes[i].getAttribute("title")+"#type:"+nodes[i].getAttribute("type"));
}
*/
function XmlParser(){
    this.browse;
    this.loaded;
    this.xpath_regx=/\[(\d+)\]/i;
}
XmlParser.prototype={
	 
   getXmldoc:function(xml){
   	 var xmldoc;
   	 try {
        xmldoc = new ActiveXObject("Microsoft.XMLDOM");
        this.browse='ie';
     }catch(e){
        try{
        	xmldoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
        	this.browse='ie';
        }catch(e2){
        	xmldoc= document.implementation.createDocument('','',null);
        	this.browse='firefox';
        }
     }

     if(!xmldoc){
        alert("请使用ie或者firefox浏览器.");
     }else{
       xmldoc.async = false;
       if(this.browse=='ie'){
       	 //this.xmldoc.onreadystatechange=function(){_this.xmlloaded(_this);};
         xmldoc.load(xml);
         xmldoc.setProperty('SelectionLanguage','XPath');
       }else if(this.browse=='firefox'){
       	 //this.xmldoc.onload=this.xmlloaded(this);
       	 try{
       	    xmldoc.load(xml);
       	 }catch(e){
       	 	var xmlhttp = new window.XMLHttpRequest();
            xmlhttp.open("GET",xml,false);
            xmlhttp.send(null);
       	 	var parser=new DOMParser();   
            xmldoc = parser.parseFromString(xmlhttp.responseText,"text/xml");
       	 }
       }
     }
     return xmldoc;
   },
   /*
   xmlloaded:function(thisobj){
   	    if(thisobj.browse=='ie'&&thisobj.xmldoc.readyState==4){
          thisobj.loaded=true;
        }else if(thisobj.browse=='firefox'){
        	thisobj.loaded=true;
        }
   },
   */
   getXml:function(xmldoc){
   	 return xmldoc.xml?xmldoc.xml:(new XMLSerializer).serializeToString(xmldoc);
   },
   getText:function(node){
   	 return node.text?node.text:node.textContent;
   },
   selectNode:function(xmldoc,xpath){
   	 var _this=this;
   	 var node=null;
     if(this.browse=='ie'){
       node = xmldoc.selectSingleNode(xpath);
     }else{   
       var xPather = new XPathEvaluator();
       var nodes = xPather.evaluate(xpath, xmldoc,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);
       if(nodes != null){
       	 node = nodes.iterateNext();
       }
     }
     return node;
   },
   selectNodes:function(xmldoc,xpath){
   	 var nodes=null;
     if(this.browse=='ie'){
       nodes = xmldoc.selectNodes(xpath);
     }else{
     	 xpath=xpath.replace(this.xpath_regx,function(){return '['+(parseInt(arguments[1])+1)+']';});
       var xPather = new XPathEvaluator();
       var iterate = xPather.evaluate(xpath, xmldoc,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);
       if(iterate != null){
       	 nodes=new Array();
       	 var nodetemp;
       	 while(nodetemp=iterate.iterateNext()){
       	 	 nodes.push(nodetemp);
       	 }
       }
     }
     return nodes;
   }
}