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+=’’;
var i:Number=0;
for each(var node:XML in xmlNode.children()){
if(i!=index)
newStr+=node.toXMLString();
i++;
}
newStr+=’’;
return new XML(newStr);
}
xmlNode 被删除节点的父节点
index 被删除节点的在父节点的子节点列表中索引值
由于原理是历遍XML对象,重新构造一个新的XML对象,所以消耗时间是与XML对象的大小成比例。
所以个人还是觉得 delete oneXMLNode; 方法方便一点。
若有更好的方法请高手指点~~
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1757.html
在AS3的Help文档里也没有提及如何删除一个XML节点。
其中一个方法就是 delete oneXMLNode;
暂时并不知道有什么其他方法删除XML节点。曾经看过一篇文章。实现原理是重新构造一个XML对象,在构造这对象的时候把要删除的那个节点排除。
private function deleteByIndex(xmlNode:XML,index:Number):XML{
var newStr:String=’’;
newStr+=’’;
var i:Number=0;
for each(var node:XML in xmlNode.children()){
if(i!=index)
newStr+=node.toXMLString();
i++;
}
newStr+=’’;
return new XML(newStr);
}
xmlNode 被删除节点的父节点
index 被删除节点的在父节点的子节点列表中索引值
由于原理是历遍XML对象,重新构造一个新的XML对象,所以消耗时间是与XML对象的大小成比例。
所以个人还是觉得 delete oneXMLNode; 方法方便一点。
若有更好的方法请高手指点~~
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1757.html