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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     シングルクォートが'になってしまう(外部XML)
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Daidai
Åê¹ÆNo.9444
投稿日時: 2004-7-26 20:08
新米
居住地: Tokyo
投稿: 8
使用環境:
WinXP Pro SP1
Frash MX2004 Pro 7.0.1
シングルクォートが'になってしまう(外部XML)
Unicodeの外部XMLを読み込んで表示したいのですが、
読込みの際にXML内の「'(シングルクォート)」が「'」に変換されてしまいます。

xmlObj = convertXML(xmlObj);

function convertXML(xml:XML):XML {
	var xml_str:String = xml.toString();
	var temp_arr:Array = new Array();
	temp_arr = xml_str.split("'");
	return new XML(temp_arr.join("'"));
}


等、一度変換してみても同じ結果になってしまいます。

外部から読み込んだXMLオブジェクト内の「'(シングルクォート)」が
「'」になってしまうのは仕方のない事なのでしょうか?
表示する際(Stringとして扱う際)に変換する以外方法はないのでしょうか?

ご存知の方がいらっしゃいましたらご教授の程、よろしくお願いいたします。
渡辺真太郎
Åê¹ÆNo.9521
投稿日時: 2004-7-28 18:31
新米
居住地: 神奈川県相模原市
投稿: 20
使用環境:
MX2004
XP
Re: シングルクォートが'になってしまう(外部XML)
渡邉です。
外部XMLに限らず、シングルクオートは 'に変換されてしまいますので、Daidaiさんが作成したconvertXML関数も意味がないことになります。

var xml = new XML( "<test>'test'</test>" );
trace( xml );

結果
<test>&apos;test&apos;</test>

引用:

Daidaiさんは書きました:
Unicodeの外部XMLを読み込んで表示したいのですが、
読込みの際にXML内の「'(シングルクォート)」が「'」に変換されてしまいます。

xmlObj = convertXML(xmlObj);

function convertXML(xml:XML):XML {
	var xml_str:String = xml.toString();
	var temp_arr:Array = new Array();
	temp_arr = xml_str.split("'");
	return new XML(temp_arr.join("'"));
}


等、一度変換してみても同じ結果になってしまいます。

外部から読み込んだXMLオブジェクト内の「'(シングルクォート)」が
「'」になってしまうのは仕方のない事なのでしょうか?
表示する際(Stringとして扱う際)に変換する以外方法はないのでしょうか?

ご存知の方がいらっしゃいましたらご教授の程、よろしくお願いいたします。
ごんざえもん
Åê¹ÆNo.9539
投稿日時: 2004-7-29 9:14
常連
居住地: 北かんとー
投稿: 123
使用環境:
Windows XP SP3
Windows7
Windows VISTA
MacOSX10.6
FlashMX2004
Flash8 pro
Flash CS6 (体験版…)
Re: シングルクォートが'になってしまう(外部XML)
gonzaemonです。
渡辺さんがお書きになったソースを修正すると「'」が正しく表示されました。

var xml = new XML();
xml =  "<test>'test'</test>";
trace( xml );

出力:<test>'test'</test>


----------------
gonzaemon

渡辺真太郎
Åê¹ÆNo.9541
投稿日時: 2004-7-29 10:17
新米
居住地: 神奈川県相模原市
投稿: 20
使用環境:
MX2004
XP
Re: シングルクォートが'になってしまう(外部XML)
渡邉です。
それだと、単にストリングを「代入しなおしている」だけですのでXMLオブジェクトとしての機能はなくなってしまいますが、問題ないのでしょうか。。。。?

xml_1 = new XML();
xml_1 = "<test>'test'</test>";
trace( xml_1.firstChild ); //undefined

xml_2 = new XML("<test>'test'</test>");
trace( xml_2.firstChild );//<test>&apos;test&apos;</test>

引用:

gonzaemon0さんは書きました:
gonzaemonです。
渡辺さんがお書きになったソースを修正すると「'」が正しく表示されました。

var xml = new XML();
xml =  "<test>'test'</test>";
trace( xml );

出力:<test>'test'</test>
ごんざえもん
Åê¹ÆNo.9542
投稿日時: 2004-7-29 10:31
常連
居住地: 北かんとー
投稿: 123
使用環境:
Windows XP SP3
Windows7
Windows VISTA
MacOSX10.6
FlashMX2004
Flash8 pro
Flash CS6 (体験版…)
Re: シングルクォートが'になってしまう(外部XML)
gonzaemonです。

すいません、まさに渡辺さんのおっしゃる通りStringになってました

型指定するべきですね。

var xml:XML = new XML();


----------------
gonzaemon

Daidai
Åê¹ÆNo.10813
投稿日時: 2004-9-15 15:07
新米
居住地: Tokyo
投稿: 8
使用環境:
WinXP Pro SP1
Frash MX2004 Pro 7.0.1
Re: シングルクォートが'になってしまう(外部XML)
渡邉さん、ごんざえもんさん

レスありがとうございます。

模索しても解決法が見つからなかった為、
以下の様な力技で解決させました。

ありがとうございました!

/*渡されたString内の'を'に、"を"に変換するメソッド*/
function convertString(str:String):String {
	var new_str:String = str;
	if (str.indexOf("'") != -1) {
		var temp_arr:Array = new Array();
		temp_arr = new_str.split("'");
		new_str = temp_arr.join("'");
	}
	if (str.indexOf(""") != -1) {
		var temp_arr:Array = new Array();
		temp_arr = new_str.split(""");
		new_str = temp_arr.join("\"");
	}
	if (str.indexOf("<") != -1) {
		var temp_arr:Array = new Array();
		temp_arr = new_str.split("<");
		new_str = temp_arr.join("<");
	}
	if (str.indexOf(">") != -1) {
		var temp_arr:Array = new Array();
		temp_arr = new_str.split(">");
		new_str = temp_arr.join(">");
	}
	return new_str;
}
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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