Namespaceの扱い方

by mtok forked from 配列、オブジェクトをXMLへ (diff: 25)
♥0 | Line 68 | Modified 2009-12-01 00:20:40 | MIT License
play

ActionScript3 source code

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

<?xml version="1.0" encoding="utf-8"?>
<!-- forked from mtok's 配列、オブジェクトをXMLへ -->
<!-- forked from mtok's flash on 2009-11-27 -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="appCompHandler()">
    <mx:Script>
    <![CDATA[
    import mx.events.FlexEvent;
    private function appCompHandler():void{
        var xml:XML =
        <ns1:Feed 
                xmlns:ns1="http://www.somenamespace.com/foo"
                xmlns:ns2="http://www.othernamespace.com/bar">
            <ns1:Name>
                <ns1:First>Taro</ns1:First>
                <ns1:Last>Okamoto</ns1:Last>
            </ns1:Name>
            <ns2:Name>
                <ns2:First>Joro</ns2:First>
                <ns2:Last>Yamada</ns2:Last>
            </ns2:Name>
        </ns1:Feed>;
        
        namespace name1 = "http://www.somenamespace.com/foo";
        namespace name2 = "http://www.othernamespace.com/bar";
        use namespace name1;
        use namespace name2;
        var name1Name:XML = xml.name1::Name[0];

        println(name1Name.toXMLString());
        
        println("-------------------");
        
         var name2Name = xml.name2::Name[0];
         println(name2Name.toXMLString());       
    }
    
    private function arryToXML(ary:Array):XML{
        var xml:XML = <array></array>;
        var i:int;
        var len:int = ary.length;
        for(i = 0; i < len; i++){
            xml.appendChild(<element>{ary[i]}</element>);
        }
        return xml;
    }
    
    private function objectToXML(obj:*):XML{
        var xml:XML = <object></object>;
        var index:String;
        for( index in obj){
            xml.appendChild(<{index}>{obj[index]}</{index}>);
        }
        return xml;
    }
    private function print(str:String):void{
        taOutput.text = taOutput.text.concat(str);    
    }
    private function println(str:String):void{
        print(str);
        print("\n");    
    }
    
    //removeChildだと名前が被る。
    private function deleteChild(node:XML):XML{
        var p:XML;
        
        if(node != null){
            if( (p = node.parent()) ){
                delete p.children()[node.childIndex()];
            }
        }
        return node;
    }
    ]]>
    </mx:Script>
    <mx:TextArea width="100%" height="100%" id="taOutput" ></mx:TextArea>
</mx:Application>