站内搜索:     
站点首页破釜学院网页制作FlashAction应用 → AS3 的XML删除节点
正在加载相关信息.....
Web 站内搜索
AS3 的XML删除节点
】【打印】【加入收藏】【关闭收藏到新浪ViVi】【收藏到365KEY】 浏览字号:
日期:2006-09-02 人气: 出处:闪吧个人空间 作者: benimang
 E4X规范中定义有delete和deleteByIndex方法用来删除特定的XML节点,但是在当前版本的ActionScript 3.0实现中,并没有实现这两个方法。
在AS3的Help文档里也没有提及如何删除一个XML节点。

其中一个方法就是  delete oneXMLNode;

暂时并不知道有什么其他方法删除XML节点。曾经看过一篇文章。实现原理是重新构造一个XML对象,在构造这对象的时候把要删除的那个节点排除。
private function deleteByIndex(xmlNode:XML,index:Number):XML{ 
    var newStr:String=’’; 
    newStr+=’<’+xmlNode.localName(); 
    for each (var att:XML in xmlNode.attributes()){ 
        newStr+=’ ’+att.localName()+’="’+att.toString()+’"’; 
    } 
    newStr+=’>’; 
    var i:Number=0; 
    for each(var node:XML in xmlNode.children()){ 
        if(i!=index) 
            newStr+=node.toXMLString(); 
        i++; 
    } 
    newStr+=’</’+xmlNode.localName()+’/>’; 
    return new XML(newStr); 

xmlNode 被删除节点的父节点
index   被删除节点的在父节点的子节点列表中索引值
由于原理是历遍XML对象,重新构造一个新的XML对象,所以消耗时间是与XML对象的大小成比例。
所以个人还是觉得  delete oneXMLNode;  方法方便一点。
若有更好的方法请高手指点~~

>>>> 进入论坛交流 <<<<