Вы можете видеть, что ваш тест if (XMLData.homeitems.homeitem[i].itemImage)
оценивается как true (просто введите trace(Boolean(XMLData.homeitems.homeitem[i].itemImage)
, и вы увидите true).
Также не сравнивайте узел с String
, используйте метод toString
узла или явно приводите его к String
(т.е. String(XMLData.homeitems.homeitem[i].itemImage)!=""
или XMLData.homeitems.homeitem[i].itemImage.toString()!=""
)
Существует несколько способов сделать это:
Вы можете проверить, является ли узел неопределенным:
if (XMLData.homeitems.homeitem[i].itemImage != undefined)
Использовать метод hasOwnProperty:
if (XMLData.homeitems.homeitem[i].hasOwnProperty('itemImage'))
И вы также можете привести свой itemImage
к String и посмотреть, является ли он != ""
:
if (String(XMLData.homeitems.homeitem[i].itemImage) != "")
Используя e4x и foreach, вы можете получить более чистый код для вашего цикла:
for each(var homeItem:XML in XMLData.homeitems.homeitem) {
var itemImage:String = String(homeItem.itemImage)
if (itemImage!="") {
trace("Loading image "+itemImage);
}
}