使用AS3删除XML节点

时间:2013-12-05 09:02:42

标签: xml actionscript-3 xmlnode

我想删除一些带有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 ...

2 个答案:

答案 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;

它应该可以正常工作