20120420

XML E4X 的用法

E4X 是 JavaScript 官方對 XML 的支援標準,可以將 XML 文件視為 XML 物件,並進行載入、輸出等動作。

不過一開始我必須先說明,我非常不建議使用 E4X 來開發網頁服務。
原因與用法如下:


瀏覽器支援

這也就是我不建議使用 E4X 的原因。

目前僅有 Firefox 支援 E4X,Opera、Chrome、Safari、和 IE 皆不支援。因此就算 EX4 再怎麼簡便好用,我們也絕不能用來開發出大多數使用者都無法使用的服務。

以下還是會簡單介紹 EX4 的用法,大家看看就好,除非未來有更多瀏覽器支援,否則實務上不太可能使用。

E4X 用法

(以下程式碼請皆在 Firefox 中測試)

例1:輸出 32
<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>

例2:
note.xml
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
以下為使用 HTTPRequest 物件來載入、parse、輸出 note.xml 中 <body>
的內容
if (window.XMLHttpRequest)
  {// IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","note.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 

document.write(xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue);
將上段 JavaScript 改寫為使用 E4X
var xmlDoc=new XML();
xmlDoc.load("note.xml");
document.write(xmlDoc.body); 
變得很簡單吧!不過要記得除了 Firefox 之外,目前其他瀏覽器皆未支援喔。

沒有留言:

張貼留言