トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     XMLファイルのテキストフィールドへの読み込み
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yuki8
Åê¹ÆNo.45779
投稿日時: 2010-9-14 16:42
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: XMLファイルのテキストフィールドへの読み込み
なるほど。詳しい説明ありがとうございます。


では,的外れな質問になってしまう気がしますが
	var xmlObj:XML = new XML(loader.data);
	var wordList:XMLList = xmlObj.section[0].word;
	var enList:XMLList = wordList.@en;
	//trace(enList);
	var tests:XML;	
	for(var i:int=0; i < enList.length(); i++){
		tests = enList[i];
		trace(tests.span);
	}

において,
tests.span ではなぜ英単語が取り出せなかったのでしょうか?
testsの型はXMLなので取り出せると思ったのですが;
<span class="s33" id="e1">appoint</span>はもうただの文字列になっているということでしょうか?



また,本にはアトリビュートの値を@hoge==""のようにして取り出せると書いてありました。
しかしXMLデータ内の値class="s33"を取り出すことができませんでした。
これは他の方が指摘されたようにXMLファイルのデータ構造に問題があるということでしょうか?

野中文雄
Åê¹ÆNo.45776
投稿日時: 2010-9-14 16:22
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: XMLファイルのテキストフィールドへの読み込み
リンク先のURLLoader.dataプロパティの説明は、ご覧になりましたか?そこからさらに「関連項目」をたどればおわかりいただけるとおり、URLLoader.dataFormatプロパティのデフォルト値はURLLoaderDataFormat.TEXTです。
引用:
dataFormatプロパティがURLLoaderDataFormat.TEXTの場合、受け取るデータは、ロードされたファイルのテキストを含むストリングです。

つまり、文字列(ストリング)をXMLオブジェクトに変換することは、すでにおできになっているということです。
 var xmlObj:XML = new XML(loader.data);

引用:
yuki8さんは書きました:
外部ファイル(XML)の内容URLLoader.dataプロパティを使って取り出すと書いてあったのでこのように使っています。

データ型はよくわかりません;


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

yuki8
Åê¹ÆNo.45775
投稿日時: 2010-9-14 16:13
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: XMLファイルのテキストフィールドへの読み込み
上のコードで起こったことは理解しています。


下ですが,スクリプトは本を読みつつ自分で書いたものです。
外部ファイル(XML)の内容URLLoader.dataプロパティを使って取り出すと書いてあったのでこのように使っています。

データ型はよくわかりません;
野中文雄
Åê¹ÆNo.45774
投稿日時: 2010-9-14 15:28
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: XMLファイルのテキストフィールドへの読み込み
第1に、「今何が起こっているのか」は理解されましたか?
var xmlObj:XML = 
	<word snd="T10101W0.wav" en="<span class='s33' id='e1'>appoint</span>">test</word>;
trace(xmlObj);
trace(xmlObj.toString());
trace(xmlObj.text());
trace(xmlObj.toXMLString());
var tests:XMLList= xmlObj.@en
trace(tests);
trace(tests.toString());
trace(tests.text());
trace(tests.toXMLString());

第2に、スクリプトはご自分で考えて書かれたものですか?URLLoader.dataプロパティのデータ型は何ですか?
引用:
yuki8さんは書きました:
問題は,@enとすると当然ですが<span class="s33" id="e1">appoint</span>の部分を取り出すことになってしまい,その中の単語に辿りつけないという点です。

T10101W0.wavは<span></span>で囲まれていないのでそのまま抜き出せるのですが。。。
変数enListの時すでに,指摘された通り属性enの文字列になっていてそこからはもう抜き出せないのでしょうか?


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

yuki8
Åê¹ÆNo.45773
投稿日時: 2010-9-14 15:27
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: XMLファイルのテキストフィールドへの読み込み
素早い返信ありがとうございます。




961832pさん

引用:
正規表現を使って、HTMLタグ以外の文字を取り出す


この方法は知らなかったのでこれから調べて試してみたいと思います。
ありがとうございます。


ひろゆきさん

具体的な方法をありがとうございます。
なるほど!htmlTextプロパティを使えばよかったのですね;

appoint,distribute,agenda,conference,forum,annual,attend,committee,approve,dispute

という出力が得ることができました。


また,無事にテキストフィールドに順に並べることができました。




質問に答えてくださった皆様ありがとうございました。
また質問する機会がありましたらよろしくお願いします。



かなり勉強不足なのでもっとがんばります;;
ひろゆき
Åê¹ÆNo.45771
投稿日時: 2010-9-14 15:15
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: XMLファイルのテキストフィールドへの読み込み
fladdict » FlashでHTMLテキストからタグを抜き取る方法


----------------
質問する際は、回答者に具体的な情報を与えてください。

961832p
Åê¹ÆNo.45769
投稿日時: 2010-9-14 14:55
常連
居住地: Akiruno-shi
投稿: 155
使用環境:
 
:AS3:
- Adobe Flex SDK, Eclipse, AIR GEAR
- LB.Log AS3, Alcon2

:AS2:
- AMES(ASDT, MTASC, Eclipse, swfmill)
- Natural Entry Point Method
- LB.Log, Zeroi

Pro, Firefox, Chromium(Iron), IE

----------------
Pro,
Re: XMLファイルのテキストフィールドへの読み込み
 
なるほど、テキストフィールドをフィルタがわりに使うなんて面白くて確かに手軽ですね。勉強になります。


----------------
:961832p:
- だんだんAS3に慣れてきた“なんちゃって”AMES使いの日曜プログラマー

ひろゆき
Åê¹ÆNo.45768
投稿日時: 2010-9-14 14:37
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: XMLファイルのテキストフィールドへの読み込み
こちらの方が手軽かな?
var list:Array = new Array();
function onLoaded(eventObj:Event):void{
	var xmlObj:XML = new XML(loader.data);
	var wordList:XMLList = xmlObj.section[0].word;
	var enList:XMLList = wordList.@en;
	//trace(enList);
	var tests:String;
	for(var i:int=0; i < enList.length(); i++){
		tests = enList[i];
		//trace(tests);
		//my_txt.appendText(tests+String.fromCharCode(10));
		my_txt.htmlText = tests;
		list.push(my_txt.text);
	}
	my_txt.htmlText = "";
	trace(list);
}


----------------
質問する際は、回答者に具体的な情報を与えてください。

961832p
Åê¹ÆNo.45767
投稿日時: 2010-9-14 14:32
常連
居住地: Akiruno-shi
投稿: 155
使用環境:
 
:AS3:
- Adobe Flex SDK, Eclipse, AIR GEAR
- LB.Log AS3, Alcon2

:AS2:
- AMES(ASDT, MTASC, Eclipse, swfmill)
- Natural Entry Point Method
- LB.Log, Zeroi

Pro, Firefox, Chromium(Iron), IE

----------------
Pro,
Re: XMLファイルのテキストフィールドへの読み込み
 
XMLファイルのデータ構造に根本的な問題があるような気もしますが(汗)、変えられない場合は正規表現を使って、HTMLタグ以外の文字を取り出すのが手軽な方法かなと思いました。
 ・as3 正規表現 - Google 検索

引用:
yuki8さんは書きました:

問題は,@enとすると当然ですが<span class="s33" id="e1">appoint</span>の部分を取り出すことになってしまい,その中の単語に辿りつけないという点です。

T10101W0.wavは<span></span>で囲まれていないのでそのまま抜き出せるのですが。。。
変数enListの時すでに,指摘された通り属性enの文字列になっていてそこからはもう抜き出せないのでしょうか?




ちなみにXMLデータはお借りするものなので自分で書きかえることはできないです。


----------------
:961832p:
- だんだんAS3に慣れてきた“なんちゃって”AMES使いの日曜プログラマー

ひろゆき
Åê¹ÆNo.45766
投稿日時: 2010-9-14 13:51
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: XMLファイルのテキストフィールドへの読み込み
引用:
yuki8さんは書きました:
すみませんいくつかコードが抜けていました。
これで実行するとエラーは出ませんでした。

いいえ、エラーはでます。

sample.xmlの内容を野中さんが指摘されたようなものに修正する必要があり、
それについて、明記すべきでしょう。


function onLoaded(eventObj:Event):void{
	var xmlObj:XML = new XML(loader.data);
	var wordList:XMLList = xmlObj.section[0].word;
	var enList:XMLList = wordList.@en;
	//trace(enList);
	var tests:String;
	for(var i:int=0; i < enList.length(); i++){
		tests = enList[i];
		trace(tests);
		my_txt.appendText(tests+String.fromCharCode(10));
	}
}


----------------
質問する際は、回答者に具体的な情報を与えてください。

« 1 (2) 3 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops