JavaScript遍历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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值