我想删除一些带有AS3的XML节点。我在Google上搜索了如何做到这一点,但似乎没有任何效果。
这是我的XML的一部分:
<feed xmlns:xxxx="xxxx" xmlns:opensearch="xxx" xmlns="xxxx">
<title/>
<updated>date</updated>
<author>
<name>xxxxx</name>
</author>
<id>urn:tag:api@xxxx,date</id>
</feed>
这是我的AS3:
package {
import flash.text.TextField;
import flash.events.*;
import flash.utils.*;
import flash.display.*;
import flash.net.*;
public class Hello extends Sprite
{
// Attributs
private var xmlLoader:URLLoader = new URLLoader();
// Constructor
public function Hello()
{
// Call XML Method
XMLcall();
}
// XMLcall Method
private function XMLcall():void
{
xmlLoader.load(new URLRequest("xxx"));
// When loaded, add event and launch XMLparser
xmlLoader.addEventListener(Event.COMPLETE, XMLcreate);
}
// XMLCreate Method
private function XMLcreate(e:Event):void
{
// Create var myXML which contains the xml
var myXML:XML = new XML(e.target.data);
// Delete node
delete myXML.author;
// Save as myxml.xml
var bytes:ByteArray = new ByteArray();
var fileRef:FileReference=new FileReference();
fileRef.save(myXML, "myxml.xml");
}
}
}
此代码有效,但节点“作者”仍在我的xml ...
中答案 0 :(得分:0)
删除节点时尝试添加命名空间,this page可能会有帮助
var ns:Namespace = myXML.namespace("xxxx");
delete myXML.ns::author;
答案 1 :(得分:0)
你必须考虑名称空间,替换这一行:
delete myXML.author;
使用:
var ns:Namespace = myXML.namespace();
delete myXML.ns::author;
它应该可以正常工作