XML - E4X
E4X は JavaScript に XML への直接サポートを追加します。
E4X の例
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);
<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);
この例は Firefox でのみ動作します!
JavaScript オブジェクトとしての XML
E4X は JavaScript の正式な標準であり、XML への直接サポートを追加します。
E4X を使用すると、Date または Array オブジェクト変数を宣言するのと同じ方法で、XML オブジェクト変数を宣言できます:
var x = new XML()
var y = new Date()
var z = new Array()
var y = new Date()
var z = new Array()
E4X は ECMAScript(JavaScript)標準です。
ECMAScript は JavaScript の正式名称です。ECMA-262(JavaScript 1.3)は 1999 年 12 月に標準化されました。
E4X は JavaScript の拡張であり、XML への直接サポートを追加します。ECMA-357(E4X)は 2004 年 6 月に標準化されました。
ECMA 機関(1961年設立)は、情報通信技術(ICT)と家電(CE)の標準化に特化しています。ECMA が策定した標準は次のとおりです:
- JavaScript
- C# 言語
- 国際文字セット
- 光ディスク
- 磁気テープ
- データ圧縮
- データ通信
- など...
E4X を使用しない場合
次の例はクロスブラウザ対応の例で、既存の XML ドキュメント("note.xml")を XML パーサーに読み込み、メッセージを表示します:
例
var xmlDoc;
//code for Internet Explorer
if (window.ActiveXObject)
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("note.xml");
displaymessage();
}
// code for Mozilla, Firefox, etc.
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);
}
//code for Internet Explorer
if (window.ActiveXObject)
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("note.xml");
displaymessage();
}
// code for Mozilla, Firefox, etc.
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);
xmlDoc.load("note.xml");
document.write(xmlDoc.body);
ずっと簡単ですよね?
ブラウザのサポート
Firefox現在、E4X のサポートが比較的良好な唯一のブラウザです。
現在まだ E4X をサポートしていないものはOpera、Chrome 或 Safari。
これまでのところ、...においてサポートの兆候はありませんInternet Explorer中での E4X のサポート。
E4X の未来
E4X は広くサポートされていません。おそらく、提供される実用的な機能が少なすぎて、他のソリューションではまだ扱われていないのでしょう:
- 完全な XML 処理には、さらに学ぶ必要があります:XML DOMとXPath
- XMLHttpRequests にアクセスするには、JSONが推奨される形式です。
- 単純なドキュメント処理には、JQuery選択がより簡単です。
その他の拡張