23.XMLではまった!

XMLを読み込んだものの、、、

外部のXMLファイルを読み込んでいろいろすることがあるかと思いますが、この時にえらくはまったことがありましたのでメモしておきます。

XMLオブジェクトをmyXMLとして、myXML.priceとかmyXML.productnameという感じでアクセスするものとします。

下のコードはXMLファイルから読み込んだ料金(myXML.price)に手数料(charge)を加える、というだけのもの。

trace("myXML.productname="+myXML.productname);
trace("myXML.price="+myXML.price);

var charge:Number=500;
trace("charge="+charge);

var totalprice:Number=myXML.price+charge;
trace("totalprice="+totalprice);

りんごが1箱1500円。手数料が500円で合計(totalprice)は?

ちょっと負けてもらって1800円でお願いしたいところですが、ここはやっぱり明朗会計で2000円と出て欲しいわけであります。

ところが実行結果は以下の通り、、、

XML読み込み後にはまった実行結果

ひゃ、100万を超えてるじゃないかっ!?

おいおい、こんな請求書出したらあきませんで、、、(-_-;)

もうおわかりかと思いますが、myXML.priceを数字として扱ってくれてないわけであります。

確かに、読み込んだのは数字だ!とコード上で定義してもないから仕方ないんだけど。

結局、下のようにNumberを使ったり、

var totalprice:Number=Number(myXML.price)+charge;

×1したり、、、

var totalprice:Number=myXML.price*1+charge;

これで処理上は意図通りになりますが、解決にはなってないな、、、いつかまたきっと同じ過ちを犯しそう。

うーん、なんかいい方法ないものかなぁ?

→23.XMLではまった!2

22.ApplicationDomainクラスを使う2←