| 意志不坚,又被同志们拉下水,对JS手痒了!
先是让我改我的JTree,在是笨小孩让我看它的问题,汗,难道我要重出江湖不成?
下面是JS遍利XML文件各节点的示例,好久好久以前写的东东了!
<script language="JavaScript" type="text/javascript"> var xmlFile="http://xling.blueidea.com/rss2.xml"; var createXMLDom=function(){ if (window.ActiveXObject) var xmldoc=new ActiveXObject("Microsoft.XMLDOM"); else if (document.implementation&&document.implementation.createDocument) var xmldoc=document.implementation.createDocument("","doc",null); xmldoc.async = false; //为了和FireFox一至,这里不能改为False; xmldoc.preserveWhiteSpace=true; return xmldoc; } var createXMLHttp=function(){ var xmlHttp; if (window.ActiveXObject){ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }else{ xmlHttp=new XMLHttpRequest(); } return xmlHttp; } //----------------------------------------------------------------------------- //加载XML文件。 var xmlDom=createXMLDom(); try{ xmlDom.load(xmlFile); }catch(e){ var xmlHttp=createXMLHttp(); xmlHttp.onreadystatechange = function(){ if(xmlHttp.readyState == 4){ xmlDom=xmlHttp.responseXML; }else{ //window.state="XML文件加载中..."; } } xmlHttp.open("GET",xmlFile,false); xmlHttp.send(null); } var DOMRoot=xmlDom.documentElement; //取出指定节点的属性。 var getDOMAtt=function(pNode,pAttribute){ try{ return pNode.attributes.getNamedItem(pAttribute).nodeValue; }catch(e){ //alert("指定节点不存在,或指定属性:"+pAttribute+" 不存在!") return false; } } var attList=function(pNode){ if(pNode.nodeType == 4) return ''; var oAtt,tmpString="[ "; try{ for(var i=0;oAtt=pNode.attributes[i];i++){ tmpString+=oAtt.nodeName+" = '" + oAtt.nodeValue+"' "; } tmpString+=" ]" return tmpString; }catch(e){ return ''} } var getNodeName = function(pNode){ if(pNode.nodeType == 4) return ''; return pNode.nodeName; } var getNodeValue = function(pNode){ try{ return " : " + pNode.firstChild.nodeValue; }catch(e){return ''} } var nbsp=function(pNum){ var tmpString="" for(var i=0;i<pNum;i++){ tmpString+=" "//这里是全角的空格 } return tmpString; } var switchTree=function(pNode,pLevel){ var tNode,i; for(i=0;tNode=pNode.childNodes[i];i++){ if(tNode.nodeType==3) continue;//因为preserveWhiteSpace等于true document.write(nbsp(pLevel),"<font color='blue'><b>",getNodeName(tNode),"</b></font><font color='red'>",attList(tNode),"</font>",getNodeValue(tNode),"<br />"); switchTree(tNode,pLevel+1); } } switchTree(DOMRoot,2) </script> </html> |