Руководство по actionscript. часть 3, стр. 053

Для обращения к атрибутам или элементам, имена которых содержат символы, считающиеся недопустимыми в идентификаторах языка ActionScript, вместо оператора «потомок» необходимо использовать метод экземпляра descendant^ ) класса XML. Оператор «потомок» не позволяет использовать запись вида элемент..["некоеИмя"].

Оператор «потомок» полезен сам по себе, однако при использовании возможностей фильтрации расширения Е4Х он становится просто незаменимым. Как только вы разберетесь с оператором «потомок» и возможностями фильтрации расширения Е4Х, сможете быстро и легко выполнять практически любую обработку данных в формате XML. Мы рассмотрим это в следующем разделе.

Фильтрация данных XML

Оператор фильтрующего предиката расширения Е4Х — это простой, но очень мощный инструмент поиска. Он может принимать любой объект XMLList и возвращать подмножество элементов из этого списка в соответствии с указанным условием.

Шу_ Термин «предикат» заимствован из спецификации языка XPath консорциума W3C. Более подробную информацию можно найти по адресу http://www. w3.org/TR/xpath20/#id-— predicates.

Оператор фильтрующего предиката записывается в следующем обобщенном виде:

объектХМИist. (условноеВыражение)

Для каждого элемента в объекте объектХМШ5Ь выражение условноеВыражение выполняется один раз. Если для элемента выражение условноеВыражение возвращает значение true, этот элемент добавляется в объект XMLList, который возвращается после обработки всех элементов. Стоит отметить, что при каждом выполнении выражения условноеВыражение текущий элемент временно добавляется в начало цепочки областей видимости, позволяя внутри выражения непосредственно обращаться к его потомкам и атрибутам по имени.

Использовать оператор фильтрующего предиката чрезвычайно просто. Рассмотрим новый XML-фрагмент и выполним фильтрацию. В листинге 18.12 новый фрагмент представляет список сотрудников компании.

Листинг 18.12. Список сотрудников

var staff:XML = EMPLOYEE ID=»501″ HIRED=» 1090728000000″> Marco Crawley James Porter 25000 Designer



Graham Barton

James Porter

35000

Designer

James Porter Dori an Schapi ro 55000 Manager

Теперь выполним нашу первую операцию по фильтрации данных: предположим, что мы хотим получить список сотрудников, которыми руководит James Porter. Мы можем отфильтровать список элементов из листинга 18.12 следующим образом:

// Сначала получаем объект XMLList. представляющий все элементы var all Employees:XMLList = staff.*;

// Теперь фильтруем список элементов

var employeesUnderJames:XMLList = all Employees.(MANAGER == «James Porter»);

Выражение a llEmployees. (MANAGER == «James Porter») возвращает объект XMLList, включающий все элементы из фрагмента a llEmployees, у которых элемент содержит текст «James Porter». Вам должна понравиться простота и читабельность кода расширения Е4Х. Просто помните, что предыдущая строка кода работает потому, что каждый раз при выполнении выражения (MANAGER == «James Porter») проверяемый элемент из фрагмента allEmployees добавляется в цепочку областей видимости. Таким образом, выполняемое выражение (MANAGER == «James Porter») имеет следующее концептуальное значение, записанное в псевдокоде:

if (текущийСотрудник. MANAGER == «James Porter») // добавить текущийСотрудник в список результатов

Для сравнения приведем реальный код на языке ActionScript, который делает то же самое, что и выражение allEmployees. (MANAGER == «James Porter»):

var resultList:XMLList = new XMLList( ): var counter:int = 0:

for each (var employee:XML in allEmployees) { if (employee. MANAGER == «James Porter») { resultList[counter] = employee: counter++;

}

}

Рассмотрим еще несколько примеров, которые демонстрируют, как можно обращаться к информации из листинга 18.12, основываясь на множестве условий. Следующее выражение возвращает список сотрудников, зарплата которых меньше либо равна $35 ООО.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 089
  • 16.07.2010">Простые способы улучшить сайт
  • 18.10.2019">Игровой автомат Always Hot в Azino
  • 17.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.137
  • 14.03.2010">Логотипы. Где их искать?
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 042
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.9
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 065
  • 19.11.2013">Паркетная доска: достоинства и недостатки
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 068
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 046
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 129
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 122
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 001
  • 06.07.2011">Технология Active X на страницах сайта
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...