Чтение онлайн

на главную - закладки

Жанры

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>);

Расширение E4X полностью поддерживает пространства имен, а также включает синтаксические конструкции и функции для работы с пространствами имен XML:

// Объявить пространство имен по умолчанию с помощью инструкции

// "default xml namespace" statement:

default xml namespace = " http://www.w3.org/1999/xhtml ";

// Следующий документ xhtml содержит несколько тегов svg:

d = <html>

<body>

Маленький красный квадрат:

<svg xmlns=" http://www.w3.org/2000/svg " width="10" height="10">

<rect x="0" y="0" width="10" height="10" fill="red"/>

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

Двойник Короля 7

Скабер Артемий
7. Двойник Короля
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Двойник Короля 7

Распутье

Басаргин Иван Ульянович
Сибириада
Проза:
военная проза
историческая проза
5.00
рейтинг книги
Распутье

Пески веков (сборник)

Уиндем Джон Паркс Лукас Бейнон Харрис
1970. Зарубежная фантастика
Фантастика:
научная фантастика
5.00
рейтинг книги
Пески веков (сборник)

Натиск

Осадчук Алексей Витальевич
12. Последняя жизнь
Фантастика:
аниме
фэнтези
попаданцы
6.20
рейтинг книги
Натиск

Прапорщик. Назад в СССР. Книга 7

Гаусс Максим
7. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прапорщик. Назад в СССР. Книга 7

Вагант

Листратов Валерий
6. Ушедший Род
Фантастика:
боевая фантастика
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Вагант

Ожерелье Странника

Хаггард Генри Райдер
Приключения:
исторические приключения
7.50
рейтинг книги
Ожерелье Странника

Наномашины, демоненок! Том 3

Новиков Николай Васильевич
3. Чего смотришь? Иди книгу читай
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наномашины, демоненок! Том 3

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Черный Маг Императора 14

Герда Александр
14. Черный маг императора
Фантастика:
аниме
сказочная фантастика
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Черный Маг Императора 14

Варяг

Мазин Александр Владимирович
1. Варяг
Фантастика:
альтернативная история
9.10
рейтинг книги
Варяг

Неучтенный элемент. Том 9

NikL
9. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 9

Проводник

Кораблев Родион
2. Другая сторона
Фантастика:
боевая фантастика
рпг
7.41
рейтинг книги
Проводник

Князь Андер Арес 4

Грехов Тимофей
4. Андер Арес
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Князь Андер Арес 4