aboutsummaryrefslogtreecommitdiff
path: root/files/fr/e4x/index.html
blob: a52f712f7d4d8a4f630b2e1e463f6c12da685f96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
---
title: E4X
slug: E4X
tags:
  - E4X
  - JavaScript
translation_of: Archive/Web/E4X
---
<p>
<b>ECMAScript pour XML</b> (<b>E4X</b>) est une extension de langage de programmation ajoutant un support <a href="fr/XML">XML</a> natif à <a href="fr/JavaScript">JavaScript</a>. Cela se fait en fournissant un accès aux documents XML dans une forme qui semblera naturelle aux programmeurs ECMAScript. Son but est de proposer une syntaxe alternative et plus simple que les interfaces <a href="fr/DOM">DOM</a> pour accéder aux documents XML.
</p><p>E4X est standardisé par l'Ecma International dans <a class="external" href="http://www.ecma-international.org/publications/standards/Ecma-357.htm">le standard ECMA-357</a> (actuellement dans sa seconde édition, de décembre 2005).
</p><p>E4X est implémenté (au moins partiellement) dans <a href="fr/SpiderMonkey">SpiderMonkey</a> (le moteur JavaScript de <a href="fr/Gecko">Gecko</a>) et dans <a href="fr/Rhino">Rhino</a> (moteur JavaScript écrit en Java).
</p>
<div class="note"><b>Note :</b> Dans les navigateurs basés sur Gecko 1.8 comme Firefox 1.5, E4X est déjà partiellement activé pour les auteurs de pages Web. Pour activer complètement E4X, l'élément <code>&lt;script&gt;</code> doit avoir le type MIME « text/javascript;e4x=1 » (c'est-à-dire avoir un attribut de la forme <code>type="text/javascript;e4x=1"</code>). La différence entre les deux modes est que sans le type MIME indiquant « e4x=1 », tous les littéraux de commentaires XML/HTML au niveau déclaratif (<code><span class="nowiki">&lt;!--...--&gt;</span></code>) sont ignorés afin d'assurer une rétro-compatibilité avec les astuces de masquage des scripts dans des commentaires. De plus, les sections CDATA (<code>&lt;![CDATA{{ mediawiki.external('...') }}]&gt;</code>) ne sont pas analysées comme des littéraux CDATA (ce qui mènerait à une erreur de syntaxe JS en HTML puisque l'élément <code>&lt;script&gt;</code> génère une section CDATA implicite, et ne peut donc pas contenir de sections CDATA explicites).
</div>
<h3 id="Bogues_connus_et_limitations" name="Bogues_connus_et_limitations"> Bogues connus et limitations </h3>
<ul><li> Il n'est actuellement pas possible d'accéder à un objet DOM depuis E4X ({{ Bug(270553) }})
</li><li> E4X ne supporte pas le traitement d'une déclaration XML (<code>&lt;?xml version=...?&gt;</code>) (voir {{ Bug(336551) }}). Vous obtiendrez une erreur SyntaxError "xml is a reserved identifier" (même si le XML est une chaîne de caractères).
</li></ul>
<p>Solution :
</p>
<pre class="eval">var response = xmlhttprequest.responseText; // bug 270553
response = response.replace('&lt;?xml version="1.0"?&gt;', ""); // bug 336551
var e4x = new XML(response);
</pre>
<h3 id="Ressources" name="Ressources"> Ressources </h3>
<ul><li> Consultez la liste des <a>pages concernant E4X</a> sur Mozilla Developer Center.
</li><li> <a class="external" href="http://www.ecma-international.org/publications/standards/Ecma-357.htm">Le standard ECMA-357 (en)</a>
</li><li> <a class="external" href="http://developer.mozilla.org/presentations/xtech2005/e4x/">Présentation de Brendan Eich (en)</a>
</li><li> <a class="external" href="http://www.faqts.com/knowledge_base/index.phtml/fid/1762">E4X sur faqts.com (en)</a>
</li></ul>
<div class="noinclude">
</div>
{{ languages( { "en": "en/E4X", "es": "es/E4X", "it": "it/E4X", "ja": "ja/E4X", "ko": "ko/E4X", "pl": "pl/E4X" } ) }}