http://community.csdn.net/Expert/topic/4285/4285034.xml?temp=.9462244
--------------------------------------------------------
<script>
var xReturn = new ActiveXObject("microsoft.xmldom");
xReturn.async = false;
xReturn.load("tree.xml");
//alert(xReturn.xml);
str="";
var level = 0
function fnListNode(Pid)
{
  var tNodes=xReturn.selectNodes("//z:row[@parentID='"+Pid+"']") //查找该指定TypeID节点下的孩子
  if (tNodes.length==0)
    return
  else
  {
    level++
    var temp = String(Math.pow(10,level)).replace(/\d/g,"-")
    for(var i=0 ;i<tNodes.length;i++)    //*************
    {
      if (tNodes(i).getAttribute("parentID")==Pid )
        str=str+temp+tNodes(i).getAttribute("TypeName")+"<br>"

      fnListNode(tNodes(i).getAttribute("TypeID"))
    }
  }
}
fnListNode(0)
document.write(str)
</script>