Просто добавим немного точности.
Если вы хотите проверить, существует ли свойство, даже если оно пустое, вам обязательно следует использовать hasOwnProperty:
var propertyExists:Boolean = node.hasOwnProperty('@hasCover');
Проверка длины содержимого несколько грязная и вернет false, если значение атрибута пустое. Вы даже можете получить ошибку во время выполнения, если попытаетесь получить доступ к свойству (длине) нулевого объекта (hasCover) в случае, если атрибут не существует.
Если вы хотите проверить, существует ли свойство и установлено ли значение, попробуйте оба варианта , начиная с hasOwnProperty , чтобы проверка значения (возможная ошибка времени выполнения) игнорировалась в случае, если атрибут не не существует:
var propertyExistsAndContainsValue:Boolean = (node.hasOwnProperty('@hasCover') && node.@hasCover.length());