Руководство по 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

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

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

Полезные ссылки
Случайные записи
  • 11.03.2011">Руководство по actionscript. часть 4, стр. 013
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 116
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 014
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.79
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 054
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.47
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 011
  • 17.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.11
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.81
  • 11.04.2011">Кто может быть web-дизайнером?
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 078
  • 14.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.76
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 122
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 094
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 080
Опрос

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

View Results

Loading ... Loading ...