E4X 向 JavaScript 添加了對(duì) XML 的直接支持。

實(shí)例

<html><!DOCTYPE html>
<html>
<body>
<p>This example works in Firefox only.</p>

<script>
var employees=
<employees>
<person>
    <name>Tove</name>
    <age>32</age>
</person>
<person>
    <name>Jani</name>
    <age>26</age>
</person>
</employees>;
document.write(employees.person.(name == "Tove").age); 
</script>

</body>
</html>

這個(gè)實(shí)例僅適用于 Firefox!

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線(xiàn)實(shí)例



作為一個(gè) JavaScript 對(duì)象的 XML

E4X 是正式的 JavaScript 標(biāo)準(zhǔn),增加了對(duì) XML 的直接支持。

使用 E4X,您可以用聲明 Date 或 Array 對(duì)象變量的方式聲明 XML 對(duì)象變量:

var x = new XML()

var y = new Date()

var z = new Array()

E4X 是一個(gè) ECMAScript(JavaScript)標(biāo)準(zhǔn)

ECMAScript 是 JavaScript 的正式名稱(chēng)。ECMA-262(JavaScript 1.3)是在 1999 年 12 月標(biāo)準(zhǔn)化的。

E4X 是 JavaScript 的擴(kuò)展,增加了對(duì) XML 的直接支持。ECMA-357(E4X)是在 2004 年 6 月標(biāo)準(zhǔn)化的。

ECMA 組織(成立于 1961 年),是專(zhuān)門(mén)用于信息和通信技術(shù)(ICT)和消費(fèi)電子(CE)的標(biāo)準(zhǔn)化。 ECMA 制定的標(biāo)準(zhǔn)為:

  • JavaScript

  • C# 語(yǔ)言

  • 國(guó)際字符集

  • 光盤(pán)

  • 磁帶

  • 數(shù)據(jù)壓縮

  • 數(shù)據(jù)通信

  • 等等...


沒(méi)有使用 E4X

下面的實(shí)例是一個(gè)跨瀏覽器的實(shí)例,實(shí)例加載一個(gè)現(xiàn)有的 XML 文檔("note.xml")到 XML 解析器,并顯示消息說(shuō)明:

實(shí)例

<html>
<head>
<script>
var xmlDoc;
function loadXML()
{
//load xml file code for IE
if (window.ActiveXObject)
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("note.xml");
displaymessage();
}
// code for Mozilla, etc.
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc= document.implementation.createDocument("","",null);
xmlDoc.load("note.xml");
xmlDoc.onload=displaymessage;
}
else
{
document.write("Your browser cannot handle this script");
}
}

function displaymessage()
{
document.write(xmlDoc.getElementsByTagName("body")[0].firstChild.nodeValue);
}
</script>
</head>

<body onload="loadXML()">
</body>
</html>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線(xiàn)實(shí)例


使用 E4X

下面的實(shí)例是上面的實(shí)例相同,但是使用了 E4X:

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

簡(jiǎn)單多了,是不是?


瀏覽器支持

Firefox 是目前唯一對(duì) E4X 的支持比較好的瀏覽器。

目前還沒(méi)有支持 E4X 的有 Opera、ChromeSafari。

到目前為止,沒(méi)有跡象顯示在 Internet Explorer 中對(duì) E4X 的支持。


E4X 的未來(lái)

E4X 沒(méi)有得到廣泛的支持。也許它提供的實(shí)用功能太少,尚未被其他的解決方案涉及:

  • 對(duì)于完整的 XML 處理,您還需要學(xué)習(xí) XML DOM 和 XPath

  • 對(duì)于訪(fǎng)問(wèn) XMLHttpRequests,JSON 是首選的格式。

  • 對(duì)于簡(jiǎn)單的文檔處理,JQuery 選擇更容易。