XML литералы в JavaScript? - PullRequest
       26

XML литералы в JavaScript?

6 голосов
/ 14 февраля 2010

E4X (Ecma-357) - это расширение ECMAScript, которое добавляет литералы XML в качестве первоклассных примитивов. Это потрясающе, но с поддержкой только Mozilla и Adobe (без поддержки V8 и IE) E4X практически не работает с точки зрения веб-разработчика, который должен поддерживать пользователей любым современным браузером.

Какая еще работа ведется относительно реализации XML-литералов в JavaScript? Есть ли способ получить что-то похожее на литералы XML или E4X в JavaScript, над которым кто-то работает? Может быть, некоторые плагины для фреймворков?

Однажды я столкнулся с LunaScript (asana.com/Luna), который реализовал литералы XML на своем языке, похожем на JavaScript. Это здорово, но я, вероятно, никогда не буду работать в Асане и поэтому никогда не буду писать LunaScript.

Ответы [ 3 ]

2 голосов
/ 14 февраля 2010

Лично я не думаю, что у литералов XML есть какое-либо преимущество.

var el= <foo>bar<baz/></foo>;

не намного лучше, чем:

var el= new XML('<foo>bar<baz/></foo>');

Существовало разумное обоснование для добавления литералов регулярных выражений в JavaScript: в противном случае обратная косая черта - это супер-боль. (Хотя лично я бы предпочел необработанные строки.) Поскольку обратная косая черта в XML не распространена, я не думаю, что здесь есть какое-либо оправдание.

Добавление полного (сложного!) Синтаксиса XML в качестве основного синтаксиса языка не является победой. Фактически это вызвало серьезных проблем безопасности на практике.

Я хочу, чтобы E4X ушёл, а не больше того же самого.

2 голосов
/ 14 февраля 2010

Существует проект с открытым исходным кодом для XML на JavaScript:

http://xmljs.sourceforge.net/

XML for <SCRIPT> - это мощный, совместимый со стандартами синтаксический анализатор JavaScript XML, разработанный, чтобы помочь разработчикам веб-приложений реализовывать кроссплатформенные приложения, использующие преимущества манипулирования данными XML на стороне клиента. XML for <SCRIPT> предоставляет полный набор инструментов, в том числе:

* A standards-compliant W3C DOM Level 2 processor
* An XPath processor
* A standards-compliant SAX processor
* A simple (classic) DOM processor
* Proxies for XML retrieval from any domain
* Utilities for XML and application development

XML for <SCRIPT> является Свободным программным обеспечением и распространяется в соответствии с условиями GNU Lesser General Public License (LGPL), лицензии с открытым исходным кодом.

1 голос
/ 07 января 2011

js-xml-literal добавляет поддержку XML-литералов в любом движке Javascript посредством переписывания кода.

https://github.com/laverdet/js-xml-literal

Синтаксис является подмножеством E4X, однако API более точно имитирует DOM. На стороне клиента вы можете напрямую взаимодействовать с DOM браузера, используя литералы XML; а на стороне сервера (NodeJS) вы можете работать с виртуальным DOM до сброса в строку.

...