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って言いたいが為に無理矢理それを使ってたら
最近少し再帰処理に慣れてきた気がする
最近少し再帰処理に慣れてきた気がする