11
votes

Support de navigateur E4X

J'essaie de comprendre cela, mais il n'y a pas beaucoup d'informations. Quels navigateurs prennent en charge E4X et pourquoi n'est-ce pas plus largement adopté?


0 commentaires

4 Réponses :


3
votes

Selon w3schools , "Firefox est actuellement le seul navigateur avec un support relativement bon Pour E4X. "

Vous pouvez essayer XPath à la place. Bien que xpath ne soit pas multi-navigateur, il existe plusieurs solutions JavaScript pour cela comme Ce plugin JQuery . P>

EDIT STRT> P>

Vous pouvez réellement utiliser jQuery sans plug-in pour ceci: p>

$('<xml><some><code>code</code><tag>text</tag></xml></xml>').find('some > code').text()


0 commentaires

10
votes

Quels navigateurs supportent E4X

Firefox et autres basé sur la base de code Mozilla.

Pourquoi n'est-ce pas plus largement adopté?

Parce qu'il offre peu de fonctionnalités pratiques non déjà couvertes par des normes existantes telles que DOM.

OK, il est plus simple d'utiliser que DOM, mais comme le prix pour que vous n'ayez pas accès à toutes les fonctionnalités de XML, et la syntaxe littéral xml inutile et xml inutile est un CAASTER DE SÉCURITÉ , ce qui en fait des auteurs de documents protégés par HTACCESS STATIC complètement statiques. autour de la fonctionnalité.

comme une méthode plus simple pour accéder aux résultats d'un XMLHTTPQUEST, JSON Totalement gagné. Pour un traitement XML complet, vous avez toujours besoin de DOM. Pour faciliter la manipulation des documents, il existe des bibliothèques Selectors, XPath et JS qui peuvent le faire sans avoir à introduire une nouvelle syntaxe de langues étrange.

Cela ne laisse pas beaucoup d'une niche pour E4X. Tbh je souhaite que cela mourrait. (ETA: Cela a maintenant très bien fait.)


4 commentaires

Je me suis habitué à E4X en Flash et je me demandais pourquoi il n'est pas pris en charge à l'extérieur de Firefox. Merci et +1.


E4X est une syntaxe vraiment utile. La façon dont vous le décrivez, vous allez argumenter à Regexp aussi terrible. Ils servent leur but. Une autre chose qui me renseigne depuis que je suis décroché, c'est pourquoi ne doit-il que être une façon de faire des choses? Pourquoi n'a-t-je pas choisi d'utiliser XML au lieu de forcer pour utiliser JSON? J'utilise à la fois BTW. C'est ce que je n'aime pas à propos de la communauté Web en ce moment. En outre, @bobince le lien que vous avez affiché n'est plus valide. :(


Lien mis à jour après l'archivage du code de Google. Et oui, je crois que JS Regexp Syntaxe littérale était également une erreur, bien que l'une sans le même impact négatif que E4X. Le problème que vous avez sans littéraux surgènes est principalement la couche supplémentaire de l'évacuation des barres au dos, vous devez les mettre dans un littéral à chaîne. D'autres langues ont résolu cela de manière plus générique et flexible avec le format littéral «brut».


La réponse devrait probablement être mise à jour à la lumière de Firefox 16/21 (via Gecko and SpidermonKey), supprimant le support E4X.



4
votes

firefox Support E4X déposé dans la version 16:

E4X est obsolète. Il sera désactivé par défaut pour le contenu de Firefox 16, désactivé par défaut par défaut pour chrome dans Firefox 17 et supprimé dans Firefox 18. Utilisez DOMPARSER / DOMSERIALISER ou un algorithme JXON non natif.


1 commentaires

C'est vraiment très surprenant que cela se produise, considérant réagit 'S JSX est juste e4x < / a> fait en JS.



0
votes

J'ai développé un plugin Babel qui ajoute un support de base E4X à tous les navigateurs via la compilation de Babel.

https://www.npmjs.com/package/babel-plugin-transform-simple-e4x p>

Vous pouvez également utiliser la bibliothèque SIMPL4X NPM pour analyser XML Strings à un objet XML comme un objet similaire. p>

https://www.npmjs.com / Emballage / Simple4x P>

Les transpiles de plug-in E4X: P>

var XML = new require("simple4x");

var fooId = 'foo-id';
var barText = 'bar text';
var xml = new XML("<xml><foo id=\"" + fooId + "\">" + barText + "</foo></xml>");


0 commentaires