Flex2にて、XHTMLを操作するためXMLオブジェクトにて取得し、E4Xでの操作を行おうと数日間試行錯誤しておりました。 最初に引っかかったのは、名前空間の問題。 E4Xにて名前空間を表すやり方に少し手間取りました。 var xml:XML = new XML(obj); var ns:Namespace = new Namespace("http://www.w3.org/1999/xhtml"); trace( xml.ns::body ); 上記のやり方で、名前空間を定義し、アクセスする場合には、コロン二つをつけて名前空間に属するタグ名を記載するようです。 ですが、XHTMLのように1つの名前空間のみで構成されるような場合、デフォルト名前空間として、次のようにかけるようです。 var xml:XML = new XML(obj); var ns:Namespace
Flex2には、XMLを扱うXMLクラスという便利なクラスがあるのですが、名前空間のあるXMLを扱おうとするとうまく取得できません。 名前空間のあるXMLを扱う場合には、Namespaceクラスを使う必要があります。 Namespaceクラスを使うには。 var atom:Namespace = new Namespace("http://www.w3.org/2005/Atom"); とするか、 var atom:Namespace = feed.namespace(); とします。 namespaceメソッドは、引数を指定していない場合、デフォルト名前空間を返します。 接頭辞のある名前空間を取得する場合は、namespaceメソッドに引数に接頭辞を渡してやれば取得できます。 その後、以下のようにすれば各要素にアクセスできるようになります。 for each (var entry:XML
July 12, 2007 == 演算子と暗黙の型変換 前回の続きです。なぜ "" == foo が true と評価されるのか、まず、暗黙の型変換が行われる際のルールを一つ確認します。 暗黙の型変換の基準 暗黙の型変換が行われる際の基準となる型は、変数に関連付けられた型注釈ではなく、値であるオブジェクト自体の型です。ですので変数の型に注目していても暗黙の型変換の結果は分かりません。 例えば、今回問題になっている例 foo:Object = 0 では、値である 0 の型が暗黙の型変換の基準になります。foo の型ではありません。そのため if 文の条件は文字列とと数値の比較として扱われます。 var foo:Object = 0; if ("" == foo) { // 実際には "" == 0 が評価される trace("foo is null String"); } そうすると、今回の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く