2009-04-15 57 views
1

我想訪問一個XMLList項目並將其轉換爲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); 
        } 

但它仍然給我一個錯誤,如果世界上沒有匹配。如果有匹配,它工作正常。

謝謝!

回答

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) 

與String和Array的不同之處在於,對於XMLList,length()是一種方法而不是屬性。

相關問題