Namespaceの扱い方
forked from 配列、オブジェクトをXMLへ (diff: 25)
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>