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

パスワード:


パスワード紛失

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

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yuki8
Åê¹ÆNo.45912
投稿日時: 2010-9-22 17:22
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: XMLファイルのテキストフィールドへの読み込み
引用:
「Javaでは云々」というのは、思考を阻害するだけで何ら役立たないと思います。 #まさか、JavaScriptのことではないですよね?


Javaで作ったものをFlashでも作ろうという考えだったもので
確かにそうですよね!


許可を取ってXMLを書き直したいと思います。


ありがとうございました。
ひろゆき
Åê¹ÆNo.45854
投稿日時: 2010-9-17 17:03
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: XMLファイルのテキストフィールドへの読み込み
引用:
yuki8さんは書きました:
javaではさらにXML内のsnd="W01,W02,P01,P02,P03,P04,P05,P06,P07"を利用してWord(W)かPhrase(P)を識別して英単語とフレーズに分けることができるようなのですが,AS3でそれは不可能ですよね?

「Javaでは云々」というのは、思考を阻害するだけで何ら役立たないと思います。
#まさか、JavaScriptのことではないですよね?

ActionScriptで「W01,W02,P01,P02,P03,P04,P05,P06,P07」の文字列から、
W,P だけ切り出すことはできるでしょう。


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

yuki8
Åê¹ÆNo.45852
投稿日時: 2010-9-17 16:21
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: XMLファイルのテキストフィールドへの読み込み
返信が遅れてしまい申し訳ありません。



.child()を使うことで単語を個別に識別できたのですね!
調べが足りませんでした・・・すごく勉強になります。



また,
javaではさらにXML内のsnd="W01,W02,P01,P02,P03,P04,P05,P06,P07"を利用してWord(W)かPhrase(P)を識別して英単語とフレーズに分けることができるようなのですが,AS3でそれは不可能ですよね?


XML内のdicノード内の単語とフレーズ数が同じなら自分で定数を指定してできるのですが,それぞれ違っていて識別させないといけないので

よろしくお願いします。
ひろゆき
Åê¹ÆNo.45817
投稿日時: 2010-9-15 19:41
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: XMLファイルのテキストフィールドへの読み込み
リファンレンスをよく読んで、試行錯誤すればできると思いますが。

function onLoaded(eventObj:Event):void{
	var xmlObj:XML = new XML(loader.data);
	var wordList:XMLList = xmlObj.dic[0].en;
	for (var n:uint = 0; n < wordList.children().length(); n++) {
		trace(wordList.child(n));
	}
}


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

yuki8
Åê¹ÆNo.45816
投稿日時: 2010-9-15 18:40
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: XMLファイルのテキストフィールドへの読み込み
お借りしたXMLですので編集させていただきます。
yuki8
Åê¹ÆNo.45792
投稿日時: 2010-9-14 19:23
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: XMLファイルのテキストフィールドへの読み込み
失礼しました。
やるべき手順たいへんわかりやすいです。


	var tests:XML;	
	for(var i:int=0; i < enList.length(); i++){
		tests = enList[i];
		trace(tests);
	}

以前にコードの一部に上記のように記述をしました。

自分では[2]の手順の
引用:
[1]をXMLオブジェクトに変換する。

をしていたつもりでしたがXMLオブジェクトへの変換の仕方が違ったということですね。
(もちろんこれではできていても最後の<span class="s33" id="e10">dispute</span>だけになりますが)


URLLoader.dataを扱ったのと同じ手順というところをどのようにするかわかっていないので色々試してみます。

ありがとうございます。
野中文雄
Åê¹ÆNo.45791
投稿日時: 2010-9-14 19:00
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: XMLファイルのテキストフィールドへの読み込み
これまで、「指摘された通り属性enの文字列になっていてそこからはもう抜き出せない」のかというご質問にお答えしてきたつもりです。つまり、いまだに文字列(「<span class="s33" id="e1">appoint</span>」)をXMLオブジェクトに変換していないのが問題でしょう。やらなければならないのは、以下のことです。

[1]文字列、たとえば「<span class="s33" id="e1">appoint</span>」を取出す。
[2][1]をXMLオブジェクトに変換する。ここでURLLoader.dataを扱ったのと同じ手順を踏む。
[3][2]から<span>ノードの値の文字列を得る。

この期に及んで「xmlObjから直接単語の部分」を取出そうというのは、議論が振り出し以前に戻ってしまっています。
引用:
yuki8さんは書きました:
では最初の
var xmlObj:XML = new XML(loader.data);

における変数xmlObjから直接単語の部分だけを取り出すことは可能なのでしょうか?この状態ではただの文字列ではない気がするのですが。。
...[中略]...
classは予約語と知っていたのでattribute()を使っていました。
取り出すことができなかったのは属性idに関してもです。


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

yuki8
Åê¹ÆNo.45789
投稿日時: 2010-9-14 18:41
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: XMLファイルのテキストフィールドへの読み込み
ひろゆきさん

申し訳ないです。
そのレスでは例として前に記述したスクリプトを書かせていただきました。


もちろんコピー&ペーストしたわけではなく読みながら書き直して理解しました。




野中文雄さん

引用:
「testsの型はXML」なのは、enという属性と文字列の値をもったXMLオブジェクトだからです。XMLオブジェクトですので、XMLクラスのプロパティやメソッドが使えます。


なるほど!
XMLオブジェクトですが文字列なので.spanや@id="e1"としても値を取り出せないのですね。
では最初の
var xmlObj:XML = new XML(loader.data);

における変数xmlObjから直接単語の部分だけを取り出すことは可能なのでしょうか?この状態ではただの文字列ではない気がするのですが。。



引用:
第2のご質問は、XMLオブジェクトに変換した属性idの値は取出せるのに、classについてはエラーが出るということですよね。それでしたら、「class」が予約語だからです。そのため、属性名は文字列にしなければなりません。


すみません;
説明不足でした。
classは予約語と知っていたのでattribute()を使っていました。
取り出すことができなかったのは属性idに関してもです。
野中文雄
Åê¹ÆNo.45785
投稿日時: 2010-9-14 17:53
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: XMLファイルのテキストフィールドへの読み込み
第1に、「<span class="s33" id="e1">appoint</span>」は属性enの値であり、「ただの文字列」です。「testsの型はXML」なのは、enという属性と文字列の値をもったXMLオブジェクトだからです。XMLオブジェクトですので、XMLクラスのプロパティやメソッドが使えます。
trace(tests.parent().toXMLString());

第2のご質問は、XMLオブジェクトに変換した属性idの値は取出せるのに、classについてはエラーが出るということですよね。それでしたら、「class」が予約語だからです。そのため、属性名は文字列にしなければなりません。
trace(tests.(@["class"] == "s33"));

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



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


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

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

Flash Professional CS4/CS6/CC

Safari 6.1
Re: XMLファイルのテキストフィールドへの読み込み
var tests:String;
とお書きしたのですが。

提示されたスクリプトを単にコピー&ペーストするだけでなく、よくお読みください。


var tests:XML;
と宣言したからといって、XMLになるとは限らないのでは?


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

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

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