SO : delete node from query

by pleclech forked from SO : Dyn XML query (diff: 60)
♥0 | Line 71 | Modified 2012-10-25 18:56:33 | MIT License
play

ActionScript3 source code

/**
 * Copyright pleclech ( http://wonderfl.net/user/pleclech )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/cHfy
 */

// forked from pleclech's SO : Dyn XML query
package {
    import flash.events.Event;
    import flash.utils.setTimeout;
    import com.bit101.components.TextArea;
    
    public class FlashTest extends TextArea {
        public function FlashTest() {
            width=400
            height=400
            setTimeout(doTest, 500)                        
        }
        
        public function deleteAllTag(xml:XML, tag:String):void{
            xml.descendants(tag).(delete parent().children()[valueOf().childIndex()] );
        }

        public function doTest():void {
            try {
                var xml:XML = <breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>
light Belgian waffles covered with strawberries and whipped cream
</description>
<calories>900</calories>
</food>
<food>
<name>Berry-Berry Belgian Waffles</name>
<price>$8.95</price>
<description>
light Belgian waffles covered with an assortment of fresh berries and whipped cream
</description>
<calories>900</calories>
</food>
<food>
<name>French Toast</name>
<price>$4.50</price>
<description>
thick slices made from our homemade sourdough bread
</description>
<calories>600</calories>
</food>
<food>
<name>Homestyle Breakfast</name>
<price>$6.95</price>
<description>
two eggs, bacon or sausage, toast, and our ever-popular hash browns
</description>
<calories>950</calories>
</food>
</breakfast_menu>

xml..price.( delete parent().children()[valueOf().childIndex()] );
trace(xml);
trace();
deleteAllTag(xml, "name");
trace(xml);
            } catch (e:*) {
                trace(e);
            }
        }

        public function trace(...args):void {
            text=text+args.join(", ")+"\n"
        }
    }
}

Forked