E4X

Рубрика: Язык разметки XML

Здравствуйте, уважаемые посетители сайта okITgo.ru! Сегодня речь пойдет о стандарте E4X, который добавляет прямую поддержку XML к языку скриптов JavaScript.



E4X Пример

var employees=
<employees>
<person>
    <name>Вася</name>
    <age>32</age>
</person>
<person>
    <name>Света</name>
    <age>26</age>
</person>
</employees>;

document.write(employees.person.(name == "Вася").age);

Этот пример работает только в Firefox!

Попробуйте сами »



XML Как Объект JavaScript

E4X является официальным стандартом JavaScript, этот стандарт реализует прямую поддержку для XML.

С помощью E4X Вы можете объявлять XML объект также, как Вы объявляете объектные переменные Date или Array:

var x = new XML()

var y = new Date()

var z = new Array()

E4X является Стандартом ECMAScript (JavaScript)

ECMAScript – это официальное название JavaScript. ECMA-262 (JavaScript 1.3) был стандартизован в Декабре 1999 года.

E4X является расширением JavaScript, которое добавляет прямую поддержку для XML. ECMA-357 (E4X) был стандартизован в Июле 2004 года.

Организация ECMA (основана в 1961) занимается стандартизацией ICT (Information and Communication Technology – Технология Информации и Коммуникации) и EC (Consumer Electronics – Потребительская Электроника). ECMA разработала стандарты для:

  • JavaScript
  • Язык C#
  • Международные Наборы Символов (Character Set)
  • Оптические Диски
  • Магнитные Ленты
  • Сжатие Данных
  • Передача Данных
  • и многое другое…

Без E4X

Следующий пример работает во всех браузерах, он загружает существующий XML документ ("note.xml") в XML парсер и показывает сообщение из записки:

Пример

var xmlDoc;
//код для Internet Explorer
if (window.ActiveXObject)
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("note.xml");
displaymessage();
}
// код для Mozilla, Firefox, и т.д.
else (document.implementation && document.implementation.createDocument)
{
xmlDoc= document.implementation.createDocument("","",null);
xmlDoc.load("note.xml");
xmlDoc.onload=displaymessage;
}

function displaymessage()
{
document.write(xmlDoc.getElementsByTagName("body")[0].firstChild.nodeValue);
}

Попробуйте сами »

С E4X

Следующий пример делает то же самое, но используя E4X:

var xmlDoc=new XML();
xmlDoc.load("note.xml");
document.write(xmlDoc.body);

Гораздо проще, не так ли?


Поддержка Браузерами

Firefox на данный момент является единственным браузером с относительно неплохой поддержкой для E4X.

А такие браузеры, как Opera, Chrome и Safari вовсе не поддерживают E4X.

До сих пор нет указания о поддержке E4X в Internet Explorer.


Будущее E4X

E4X не является поддерживаемым большинством браузеров. Может быть он предлагает слишком мало практической функциональности, которую нельзя было бы реализовать посредством других решений:

  • Для полной обработки XML, Вам по-прежнему нужен XML DOM и XPath
  • Для организации запросов XMLHttpRequest, JSON является более предпочтительным форматом.
  • Для простой обработки документа легче использовать селекторы JQuery.

Спасибо за внимание! До новых встреч на страницах сайта okITgo.ru.