ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   超ビギナー
     XMLのタグ取得について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
kishi
投稿日時: 2011-2-3 20:11
一見さん
登録日: 2011-2-3
居住地:
投稿: 2
XMLのタグ取得について
はじめまして。
FLEXでXMLのデータを弄繰り回したいのですが、
下記のXMLの<sample>部分のタグ名の取得ができず、詰まってしまいました。

『parent』のnameを参照するとset、
『children』のnameを参照するとidが参照されるのですが、
sampleを参照したい場合はどのような方法で参照できますでしょうか?

よろしくお願いいたします。

<?xml version="1.0" encoding="utf-8"?>
<set>
<sample>
<id>001</id>
<id>002</id>
<id>003</id>
<id>004</id>
<id>005</id>
</sample>
</set>

public var tags:Array = new Array();
var xml:XML = new XML(rXML);
var aa:XMLList = xml.child(0);

for (var k:int=0; k < aa.elements().length(); k++){
tags.push(aa.elements()[k].name());
}
Odakaz
投稿日時: 2011-2-3 21:18
ご主人様
登録日: 2008-3-11
居住地: リアル:神奈川県/バーチャル:ウィンダス
投稿: 358
Re: XMLのタグ取得について
aa[0].name()とかで取れませんか?

http://livedocs.adobe.com/flex/3_jp/langref/XML.html

[追記]
厳密にやるならaa[0].name().localNameかな


----------------

Crono
投稿日時: 2011-2-4 11:35
ご主人様
登録日: 2006-6-21
居住地: 飯田橋/ヴァナディール
投稿: 229
Re: XMLのタグ取得について
くろのです。

XMLに対して低レベルAPIでアクセスすることはActionScript、Flexではあまりないかと思います。
E4Xでアクセスして、できれば強型付けされたクラス「エンティティ」(POJO、JavaBeansのようなもの。テーブルの1レコードなどに相当)にクライアント側で格納しなおすのが良いでしょう。
(逆にXMLを生成する際はstring処理ごりごりが私は多いです)

サンプルだとidタグの構造がシンプル(無属性)なのでクラスに入れる必要もないので、ご提示されたようにstringそのままをArrayにセットしていく流れで良いと思いますが。

TIPSとしてXML側のルートタグとそのXMLと等価なXMLクラスの変数の変数名は同じにすると良いでしょう。

サンプルプログラム:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
				creationComplete="init()">
    <mx:Script>
    <![CDATA[
        private var setXML:XML = 
			<set>
				<sample>
					<id>001</id>
					<id>002</id>
					<id>003</id>
					<id>004</id>
					<id>005</id>
				</sample>
			</set>;
		
        private function init():void {
            trace("setXML.sample: \n" + setXML.sample);
			trace("----------");
            trace("setXML.sample.id[0]: " + setXML.sample.id[0]);
			trace("setXML.sample.id[1]: " + setXML.sample.id[1]);
			trace("setXML.sample.id[2]: " + setXML.sample.id[2]);
			trace("setXML.sample.id[3]: " + setXML.sample.id[3]);
			trace("setXML.sample.id[4]: " + setXML.sample.id[4]);
			trace("----------");			
			for each(var id:String in setXML.sample.id) {
				trace("for each id in setXML.sample.id: " + id);
			}
		}
    ]]>
    </mx:Script>
</mx:Application>



実行結果:

setXML.sample: 
<sample>
  <id>001</id>
  <id>002</id>
  <id>003</id>
  <id>004</id>
  <id>005</id>
</sample>
----------
setXML.sample.id[0]: 001
setXML.sample.id[1]: 002
setXML.sample.id[2]: 003
setXML.sample.id[3]: 004
setXML.sample.id[4]: 005
----------
for each id in setXML.sample.id: 001
for each id in setXML.sample.id: 002
for each id in setXML.sample.id: 003
for each id in setXML.sample.id: 004
for each id in setXML.sample.id: 005


----------------
クラスメソッド株式会社
@Cronoloves

kishi
投稿日時: 2011-2-14 14:00
一見さん
登録日: 2011-2-3
居住地:
投稿: 2
Re: XMLのタグ取得について
返信が大変遅れてしまいまして、申し訳ございません。
返信をしたつもりでしたが、できていなかったようです。

教えていただきました方法で、<sample>の取得ができました。とても助かりました。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を