JXTree对象,读取外部xml文件数据,生成树的函数
2021-01-23 10:22:05904
/******************************************
*JXTree对象,读取外部xml文件数据,生成树
*@authorbrull
*@emailbrull@163.com
*@date2007-03-27
*******************************************/
/*
*@paramxmlURLXML文件的地址
*/
varJXTree=function(xmlURL)
{
varresult=newArray();
/*****************************
*首先定义TreeNode抽象对象
*TreeNode对象属性:
*id唯一编号,必须在xml文件里定义为节点属性
*level节点层次,从-1开始(即根节点)
*_click节点click,在xml文件定义为节点属性[可选]
*isLast是否为本节点所在层次最后一个节点
*parent_isLast父节点是否为父节点所在层次的最后一个节点
*toHTML本节点转成HTML代码的方法
*******************************/
varTreeNode=function(node,level)
{
varparent_elements=node.parentNode?(node.parentNode.parentNode?node.parentNode.parentNode.childNodes:null):null;
varelements=node.parentNode?node.parentNode.childNodes:null;
this.id=XMLDom.getAttribute(node,"id")?XMLDom.getAttribute(node,"id"):"";
this.level=level;//节点的层次
this.isLast=elements?((elements.item(elements.length-2)===node)?true:false):false;
this._click=XMLDom.getAttribute(node,'click')?XMLDom.getAttribute(node,'click'):"";
this.toHTML=null;//function
}
/*****************************
*ElementNode对象,继承自抽象对象TreeNode
*新增属性:
*_nodeName节点名称
******************************/
varElementNode=function(node,level)
{
TreeNode.apply(this,arguments);
this._nodeName=XMLDom.getAttribute(node,"name")?XMLDom.getAttribute(node,"name"):"";
this.toHTML=function(){
varresult="";
if(this.isLast)result+="
elseresult+="
result+="id='"+this.id+"_join'οnclick=\"JXTree.changeState('"+this.id+"')\">