こんにちは。きんくまです。
ようやくXMLとXMLListの違いがわかってきたのでまとめてみます。
XMLのルートノードはひとつだけ
XMLはルートノード(一番上のノード)がひとつだけの状態をいいます。
//ノーマルな書き方 var myxml:XML =1 2 //文字から生成することが可能 var str1:String = "3 12 "; var myxml1:XML = XML(str1); //OK3
XMLListのルートノードがなくXMLが並列化されている
XMLListはXMLをまとめたものです。
いいかえると、個別のXMLが並列化されている状態ともいえます。
XMLListはルートノードがひとつだけじゃない状態をいいます。
//ルートノードをとってみる var str2:String = "123 "; //var myxml2:XML = XML(str2); //Error ルートノードがひとつでないのでXMLではない var mylist0:XMLList = XMLList(str2); //OK
ルートノードさえあれば子の要素は並列していてもよい
//ルートノードさえあれば子の要素は並列していてもよい var myxml3:XML =1 2 3
XMLからノードを取り出すとXMLListになる
XMLからノードを取り出すとXMLListになります。
var myxml3:XML =1 2 3 //XMLからノードを取り出すとXMLListになる var mylist1:XMLList = myxml3.a; trace(mylist1); //こういう書き方も var mylist2:XMLList = myxml3.child("a"); trace(mylist2);
子ノードから抜き出したものをXMLにするには子ノード以下がXMLの構造(ルートノードがひとつ)になるようにすればよい
//子ノードから抜き出したものをXMLにするには //子ノード以下がルートノードになるようにすればよい var myxml4:XML =1 2 3 //そのままだと内部でXMLListとして扱われるのでXMLに型変換してやる var myxml5:XML = XML(myxml4.a); trace(myxml5);4
これでXMLとXMLListの行き来がイメージしやすくなるかと。
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ