In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

SO xml filtering

Get Adobe Flash player
by pleclech 23 May 2011
    Embed
/**
 * Copyright pleclech ( http://wonderfl.net/user/pleclech )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/10xr
 */

// forked from pleclech's forked from: flash on 2011-2-25
// forked from pleclech's flash on 2011-2-25
package {
    import flash.utils.getTimer;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
             if (stage) _init()
            else addEventListener(Event.ADDED_TO_STAGE, _init)
        }
        import flash.text.TextField;
        import flash.events.Event;

        private var tf:TextField=new TextField()
        private function trace(...args):void{
            tf.appendText(args.join(", ")+"\n")
        }
        private function _init(e:Event=null):void {
            removeEventListener(Event.ADDED_TO_STAGE, _init)
            addChild(tf)
            tf.autoSize="left"
            tf.background=true
            test1()
       }
       private function filter(xml:XML):XMLList {
        var seen:Object={}
        return xml..@iname.(!seen[valueOf()]&&(seen[valueOf()]=true))
       }
       
       private function test1():void{
           var xml:XML=
   <universe>
      <category cname="cat 1">
         <item iname="All"/>
         <item iname="item 1"/>
         <item iname="item 2"/>
      </category>
      <category cname="cat 2">
         <item iname="All"/>
         <item iname="item 3"/>
         <item iname="item 4"/>
      </category>
   </universe>
   
           trace("non filtered : ")
           trace(xml..@iname)
           trace()
           trace("filtered : ")
           trace(filter(xml))
       }
    }
}