2013-12-05 5 views
1

Я хотел бы удалить некоторый узел XML с AS3. Я искал в google, как это сделать, но ничего не работает.Удалить узел XML с AS3

Вот часть моего XML:

<feed xmlns:xxxx="xxxx" xmlns:opensearch="xxx" xmlns="xxxx"> 
    <title/> 
    <updated>date</updated> 
    <author> 
     <name>xxxxx</name> 
    </author> 
    <id>urn:tag:[email protected],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

вы должны рассмотреть пространство имен, замените эту строку:

delete myXML.author; 

с:

var ns:Namespace = myXML.namespace(); 
delete myXML.ns::author; 

и он должен работать нормально

+0

Спасибо, что работает отлично! – testoverblaireau

0

Попробуйте добавить пространство имен при удалении узла, и this page может помочь

var ns:Namespace = myXML.namespace("xxxx"); 
delete myXML.ns::author; 
Смежные вопросы