AS3 XMLにネームスペースがあると普通には値が取得できない

今まで、どうして誰もAS3でアマゾンのサンプルを作らないのか、ずっと疑問だった・・・
というかFlex2ベーダで3回ぐらい挑戦して、全部挫折していたのだけどようやっと原因が判明。

新しいXMLクラスのE4Xで、amazon apiのエレメント取得できねぇでやんの。

xml.Items.Item とかやっても常に空っぽ。

で、仕方なくxmlをローカル保存して、1行づつ削って検証した結果、どうやらItemResponseにあるネームスペース、xmlnsを削除すればxmlの値が取れるようになった。

純正Flash使いにとって未知の概念なので、多分99.9%の人はつっかえるよココ。
上条先生のブログでは多少説明されてるけど、既存のFlashユーザーが概念を理解するには、ちょっと前提知識が省略されてる感じ。

名前空間( dc: みたいなの)がXMLにある場合には、 NamespaceオブジェクトやらQNameオブジェクトやらが必要みたい。しかし、AmazonのItemResponseにはxmlns以下にアドレスはあれど、空間の名前が書いてない。こういう場合はどうやって取得するんでしょう。

現状、戻り値からリプレイスで、名前空間を無理矢理に削除してしてから、XMLパースしてるけど、明らかに誤った解決方法だからなぁ。正しい方法見つけなくちゃ。
上条先生、是非是非トラックバック有効にしてください(涙)

コメントをどうぞ