Flash / Flex / ActionScript/XML/delete

Материал из Web эксперт
Перейти к: навигация, поиск

Delete all attributes of an element

 
package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){

        var novel:XML = <BOOK ISBN="0000000000">
            <TITLE>ActionScript</TITLE>
            <AUTHOR>J, J</AUTHOR>
            <PUBLISHER>Books Ltd</PUBLISHER>
          </BOOK>;
          
        trace(novel);
        
        delete novel.@*;  
          
        trace(novel);
    }
  }
}



Remove all attributes from the movie Tron.

 
package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){
        var movieList:XML = <movieList>
                                <listName>My favorite movies</listName>
                                <movie id="123">
                                    <title>Titus</title>
                                    <year>1999</year>
                                    <director>J T</director>
                                </movie>
                                <movie id="456">
                                    <title>Rushmore</title>
                                    <year>1998</year>
                                    <director>W A</director>
                                </movie>
                                <movie id="789">
                                    <title>Hall</title>
                                    <year>1977</year>
                                    <director>Woody Allen</director>
                                </movie>
                           </movieList>;
        
        
        var tron:XML = movieList.movie[2];
        delete tron.@*;
        trace(tron);
        
        tron.id = 222; // Adding the id attribute back.
        
    }
  }
}



Removing Elements, Text Nodes, and Attributes

 

package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){
        var example:XML = <example>
                            <fruit color="Red">Apple</fruit>
                            <vegetable color="Green">Broccoli</vegetable>
                            <dairy color="White">Milk</dairy>
                          </example>;
                          
        delete example.fruit.@color;
        
        delete example.dairy;
        
        delete example.vegetable.text(  )[0];
        
        trace( example );

    }
  }
}



Removing XML Nodes

 
package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){

        var movieList:XML = <movieList>
                                <listName>My favorite movies</listName>
                                <movie id="123">
                                    <title>Titus</title>
                                    <year>1999</year>
                                    <director>J T</director>
                                </movie>
                                <movie id="456">
                                    <title>Rushmore</title>
                                    <year>1998</year>
                                    <director>W A</director>
                                </movie>
                                <movie id="789">
                                    <title>Hall</title>
                                    <year>1977</year>
                                    <director>Woody Allen</director>
                                </movie>
                           </movieList>;
        delete movieList.movie[2];
        trace(movieList.movie);
    }
  }
}



The delete operator works for other types of nodes as well, such as attributes.

 

package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){

        var movieList:XML = <movieList>
                                <listName>My favorite movies</listName>
                                <movie id="123">
                                    <title>Titus</title>
                                    <year>1999</year>
                                    <director>J T</director>
                                </movie>
                                <movie id="456">
                                    <title>Rushmore</title>
                                    <year>1998</year>
                                    <director>W A</director>
                                </movie>
                                <movie id="789">
                                    <title>Hall</title>
                                    <year>1977</year>
                                    <director>Woody Allen</director>
                                </movie>
                           </movieList>;
        var tron:XML = movieList.movie[2];
        delete tron.@*;
        trace(tron);
        
        tron.id = 222; // Adding the id attribute back.
        trace(tron);
    }
  }
}



To delete all the items in the XMLList, use a for loop and iterate over the items in reverse order

 

package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){

        var example:XML = <example>
                            <fruit color="red" name="Apple" />
                          </example>;
        
        var attributes:XMLList = example.fruit.@*;
        
        for ( var i:int = attributes.length(  ) - 1; i >= 0; i-- ) {
            delete attributes[i];
        }
        trace( example );
    }
  }
}