ECMAScript = JavaScript
จริงๆแล้ว ECMAScript คือชื่อที่เป็นทางการของ JavaScript เค้านะครับ
E4X = JavaScript for XML
E4X เป็น javascript extension ที่จะเพิ่ม native XML support ทำให้การเขียน parser แบบ DOM ทำได้ง่ายๆขึ้นมากๆ นอกจากนี้ยังสามารถใช้ความสามารถของ XPath บางส่วนอีกด้วย
ลองมาดูความง่ายของมันบ้าง
เอกสาร XML
<note>
<date>2002-08-01</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
สำหรับ DOM Model
var xmlDoc;
if (window.ActiveXObject) {
//code for Internet Explorer
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("note.xml");
displaymessage();
}else (document.implementation && document.implementation.createDocument) {
// code for Mozilla, Firefox, etc.
xmlDoc= document.implementation.createDocument("","",null);
xmlDoc.load("note.xml");
xmlDoc.onload=displaymessage;
}
function displaymessage() {
document.write(xmlDoc.getElementsByTagName("body")[0].firstChild.nodeValue);
}
จะสังเกตว่าเขียนยาวมากๆแต่ทำงานได้น้อย
คราวนี้ตา E4X บ้าง
var xmlDoc=new XML();
xmlDoc.load("note.xml");
document.write(xmlDoc.body);
งานเดียวกันแต่สบายกว่ากันเยอะครับ
อีกตัวอย่างนะครับ
var xmldoc =
<employees>
<employee id="0"><name>Jim</name><age>25</age></employee>
<employee id="1"><name>Joe</name><age>20</age></employee>
<employee id="2"><name>Sue</name><age>30</age></employee>
<employees/>
ต้องการ name ของ employee ที่ id เท่ากับ 0
document.write(xmldoc.employee.(@id=="0").name);
ต้องการ id ของ employee ที่ อายุเท่ากับ 30
document.write(xmldoc.employee.(age=="30").@id);
ต้องการ employee ที่ตำแหน่ง 2 (index 1)
document.write(xmldoc.employee[1]);
และยังมีอีกหลายๆฟังก์ชั่นที่น่าสนใจนะครับ
E4X มีใช้ที่ไหนบ้าง
1. Javascript
2. Actionscript 3
และแหล่งศึกษาเพิ่มเติมครับ
http://www.w3schools.com/e4x/default.asp
http://en.wikipedia.org/wiki/E4x
ไม่มีความเห็น