HashToXML.as
2008年1月10日
続きあります、コチラをどうぞ。
ActionScript3でXML関連は充実していると聞いたけど
ハッシュ(連想配列)とXMLオブジェクトの変換は出来ないらしい・・・ナンテコッタイ!
ハッシュ(連想配列)とXMLオブジェクトの変換は出来ないらしい・・・ナンテコッタイ!
んー、JSON慣れしていると不便だなぁ ということで
まずは、ハッシュ→XMLオブジェクト をしてくれるクラスを作ってみました。
まずは、ハッシュ→XMLオブジェクト をしてくれるクラスを作ってみました。
凄まじく誰かも作ってるような気がするけど、気にしないッ!
【使用例】
hash変数をXMLオブジェクトに変換して
toXMLStringメソッドの出力でXMLへの変換を確認します。
hash変数をXMLオブジェクトに変換して
toXMLStringメソッドの出力でXMLへの変換を確認します。
ということで変換
var hash:Object = {
root: {
str: "STR"
,num: 123
,bool: false
,nl: null
,ud: undefined
,arr: [11,22,33]
,obj: {a:1, b:2, c:3}
,nested: {
x: 1
,y: [111, 222, {sss:444}]
,z: {zz:[9, 99]}
}
,blankArr: []
,oneElemArr: ["only one"]
}
};
var xml:XML = HashToXML.toXML(hash);
trace(xml.toXMLString());
んで出力
<root> <blankArr></blankArr> <nl></nl> <oneElemArr>only one</oneElemArr> <num>123</num> <bool>false</bool> <ud></ud> <nested> <x>1</x> <y>111</y> <y>222</y> <y> <sss>444</sss> </y> <z> <zz>9</zz> <zz>99</zz> </z> </nested> <arr>11</arr> <arr>22</arr> <arr>33</arr> <str>STR</str> <obj> <c>3</c> <a>1</a> <b>2</b> </obj> </root>
要素の順番が無茶苦茶なのは、ASのforがそういう仕様だから・・・。
あ、でも、リストになってるところは順番通りです。
arguments.calleeって言いたいが為に無理矢理それを使ってたら
最近少し再帰処理に慣れてきた気がする
最近少し再帰処理に慣れてきた気がする