Руководство по actionscript. часть 3, стр. 054
Staff.*.(SALARY <= 35000)
Следующее выражение возвращает список сотрудников с зарплатой от $35 ООО до 50 ООО:
staff.*.(SALARY >= 35000 && SALARY <= 50000)
Это выражение возвращает список дизайнеров, работающих в компании:
staff.*.(POSITION == «Designer»)
Следующее выражение возвращает список сотрудников с идентификационным номером 238 (так получилось, что в этом примере только один сотрудник с указанным номером, но данный элемент все равно помещается в экземпляр класса XMLList).
staff.*.(@ID == «238″)
Следующий код получает список сотрудников, которые работают в компании с 2004 года (для представления времени мы используем стандартный формат «мил-лисекунды-с-1970-года», применяемый в классе Date):
staff.*.(©HIRED >= 1072933200000 && ©HIRED <= 1104555600000)
Наконец, мы выводим дату, когда был нанят сотрудник Graham:
// В часовом поясе стандартного восточного времени будет отображено: // Fri Mar 5 00:00:00 GMT-0500 2004
trace(new Date(Number(staff.*.(NAME == «Graham Barton»).©HIRED))); Забавно, не правда ли? Предикаты — это сильно!
Itsjjjfi Чтобы отфильтровать список, в котором не каждый элемент имеет заданный атрибут
L-1 или элемент-ребенка, мы должны использовать метод hasOwnProperty() для проверки
существования данного атрибута или ребенка перед применением фильтра. В противном случае возникнет ошибка обращения. Например, следующий код возвращает все элементы документа некийДокумент, у которых для атрибута color установлено значение «red»:
некийДокумент. .*.(hasOwnProperty(«@color») && ©color == «red»)
Мы познакомились с множеством способов обращения к конкретным узлам и группам узлов внутри XML-документа. Далее рассмотрим использование обхода дерева для обращения не к определенным узлам документа, а к каждому его узлу.