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