Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

var names2 = pt..name;

Расширение E4X позволяет использовать даже оператор шаблона:

// Получить все вложенные теги <element>.

// Это еще один способ получить список всех тегов <пате>.

var names3 = pt.element.*;

Расширение E4X отличает имена атрибутов от имен тегов с помощью символа @ (этот синтаксис заимствован из языка XPath). Например, значение атрибута можно запросить, как показано ниже:

// Получить атомное число гелия

var atomicNumber = pt.element[1].@id;

Оператор шаблона для имен атрибутов имеет вид

// Список свех атрибутов всех тегов <element>

var atomicNums = pt.element.@*;

Расширение E4X включает даже мощные и удивительно выразительные синтаксические конструкции для фильтрации списков с помощью произвольных выражений-предикатов:

// Отфильтровать список всех элементов так, чтобы

// он включал только элементы с атрибутом id < 3

var lightElements = pt.element.(@id < 3);

// Отфильтровать список всех тегов <element> так, чтобы он включал только те.

// имена которых начинаются с символа "Б". Затем создать список тегов <пате>

// из оставшихся тегов <element>.

var bElementNames = pt.element.(name.charAt(0) == 'Б').name;

Цикл

fог/each
, с которым мы познакомились выше в этой главе (раздел 11.4.1), в расширении Е4Х дополнен возможностью итераций по спискам тегов и атрибутов XML. Напомню, что цикл
for/each
похож на цикл
for/in
, за исключением того, что вместо итераций по свойствам объекта он выполняет итерации по значениям свойств:

// Вывести названия всех элементов периодической таблицы

for each (var е in pt.element) {

console.log(e.name);

}

// Вывести атомные числа элементов

for each (var n in pt.element.@*) console.log(n);

В расширении E4X выражения могут присутствовать слева от оператора присваивания. Это позволяет изменять существующие и добавлять новые теги и атрибуты:

// Изменить тег <element> для Водорода - добавить в него новый атрибут

// и новый дочерний элемент, чтобы он выглядел так:

//

// <element id="1" symbol="B">

// <name>Водород</name>

// <weight>1.00794</weight>

// </element>

//

pt.element[0].@symbol = "B";

pt.element[0].weight = 1.00794;

Так же легко можно удалять теги и атрибуты, используя стандартный оператор delete:

delete pt.element[0].©symbol; // удалить атрибут

delete pt..weight; // удалить все теги <weight>

Расширение E4X реализовано так, что позволяет выполнять большинство типичных операций с документами XML с помощью привычного синтаксиса языка. В Е4Х также имеются методы, которые можно вызывать относительно объектов XML. Например, метод

insertChildBefore:

pt.insertChildBefore(pt.element[ 1],

<element id="1"><name>Дeйтepий</name></element>);

  • Читать дальше
  • 1
  • ...
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: