Добрый день. Проблема обозначена в заголовке темы. Приведу код:
Код AS3:
var xml:XML =
<xml>
<node color="RED" />
<node color="GREEN" />
</xml>
trace(Boolean(xml.node.(@color == "RED"))); // true
trace(Boolean(xml.node.(@color == "BLUE"))); // TRUE
trace(Boolean(xml.node.(@color == "BLUE").toXMLString())); // false
trace(xml.node.(@color == "BLUE").toXMLString() ? "true" : "false"); // false
Вывод первого, третьего и четвертого трейсов мне понятен. В первом наблюдаем присутствие узла с атрибутом
color="RED", в третьем и четвертом - приведение пустой строки к типу
Boolean. Не подскажите ли отчего второй трейс выдает
true, хотя узла со значением атрибута
color="BLUE" в xml нет? И можно ли выполнить проверку из, скажем, четвертого трейса без использования метода
toXMLString()?