2009-04-15 19 views
1

私はXMLListアイテムにアクセスし、それをam XMLオブジェクトに変換しようとしています。E4Xの式が一致するかどうかはどのように判断できますか?

私はこの表現を使用しています:

例えば
masonicXML.item.(@style_number == styleNum) 

試合すべてが正常に動作しますが、その後一致しない場合、私はそれが持っていることを言ってXMLとしてそれをキャストしようとすると、私はエラーを取得するがある場合よく形成される。ですから、XMLとしてキャストする前に式が一致するようにする必要があります。私は、XMLListの変数に設定している場合は、このようなテキスト()propertieとしてチェックしてみました:

var defaultItem:XMLList = DataModel.instance.masonicXML.item.(@style_number == styleNum); 
        if(defaultItem.text()) 
        { 
         DataModel.instance.selectedItem = XML(defaultItem); 
        } 

しかしtheresの場合、それはまだ私に一致するエラーを与えません。一致があれば正常に動作します。

感謝!私はそれがこれで動作するようになった

答えて

1

、結果をチェックする最も簡単な方法は、リストの0番目の要素をつかむと、それはnullだかどうかを確認することです。

ここでは、いくつかの調整を加えたコードサンプルを示します。 defaultItemのタイプをXMLListからXMLに変更しました。これをリストの0番目のエレメントに割り当てています。

var defaultItem:XML = 
    DataModel.instance.masonicXML.item.(@style_number == styleNum)[0]; 
if(defaultItem != null) 
{ 
    DataModel.instance.selectedItem = defaultItem; 
} 
0

マットのヌルチェックは良い解決策です。 (XMLList内にヌルアイテムがある可能性はありませんが、これは検証していません)

XMLListの長さを文字列にキャストせずにチェックすることもできます:

if ([email protected]_number.length() > 0) 

文字列と配列の違いは、XMLListの場合は、length()がプロパティではなくメソッドである点です。

関連する問題