XML檔案原始碼察看器(三) (轉)

amyz發表於2007-11-12
XML檔案原始碼察看器(三) (轉)[@more@]

switch(nodNode.nodeType):namespace prefix = o ns = "urn:schemas--com::office" />


 {


 case 3: //文字節點, 黑色 粗體顯示


 strNodes+=getIndent(intLevel)+""+nodNode.nodeValue+"
";break;


 case 7: //指令節點 , 子


 strNodes+=renderInstruction(nodNode,intLevel); break;


 case 8: //註釋節點 , 呼叫子節點


 strNodes+=renderComment(nodNode,intLevel); break;

 case 9: //Document 節點 -- “根”節點。不需要顯示,只需顯示子節點


 //遍歷節點的子節點就是這樣寫地 : ) ,so easy


 intCount = nodNode.childNodes.length;


 if (intCount > 0)


 {


 for (intNode = 0; intNode < intCount; intNode++)


 strNodes += renderChildNodes(nodNode.childNodes(intNode), intLevel + 1);


 }


 break;


 default://普通節點


 strNodes+=getIndent(intLevel)+"<"; // 藍色 <


 strNodes+=""+nodNode.nodeName+" "; // 褐色 node name

 //顯示 屬性


 nodAttrList = nodNode.attributes;//得到屬性節點集(collection -- 我最喜歡的資料型別之一)先


 if (nodAttrList != null) //有屬性


 {


 intCount = nodAttrList.length; //collection 之 length ,方便吧? :)


 if (intCount > 0)


 {


 for (intAttr = 0; intAttr < intCount; intAttr++)


 //紅色 屬性名,藍色 引號


 strNodes += ""+nodAttrList(intAttr).nodeName + '="' + nodAttrList(intAttr).nodeValue + '" ';


 }


 }


 //處理當前節點的子節點


 intCount = nodNode.childNodes.length;


 if (intCount > 0)


 {//如果有子節點


 strNodes+=">
" //屬性顯示完 ,用“ 〉“閉合 Tag先


 // 對每個子節點遞迴呼叫 renderChildNodes


 for (intNode = 0; intNode < intCount; intNode++)


 strNodes += renderChildNodes(nodNode.childNodes(intNode), intLevel + 1);


 //顯示關閉標記


 strNodes+=getIndent(intLevel)+"</"+nodNode.nodeName +">
";


 }


 else


 strNodes += "/>
" //沒有子節點, 顯示 “ /〉“


 }


 return strNodes;


}




//給註釋節點著色


function renderComment(nodNode,intLevel)


{


 var strNodes = '';


 var intCount = 0;


 var intNode = 0;


 var nodAttrList;


 strNodes+=getIndent(intLevel)+"<!-- ";


 strNodes+= nodNode.nodeValue;


 strNodes+=" -->
";


 return strNodes;


}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-981930/,如需轉載,請註明出處,否則將追究法律責任。

相關文章