MozTW 討論區
https://forum.moztw.org/

請問怎在網頁存取XML?
https://forum.moztw.org/viewtopic.php?f=13&t=19719
1 頁 (共 1 頁)

發表人:  fanta [ 2007-07-16, 16:44 ]
文章主題 :  請問怎在網頁存取XML?

以下是我找的範例
代碼:
<html>
<head>
   <title>範例12-21</title>
   <xml id="database" src="ex12-21.xml"></xml>
   <script type="text/javascript">
      xmldoc = document.all("database").XMLDocument;
      nodeXML = xmldoc.documentElement;
      nodeLists = nodeXML.childNodes;
      var number = 0;
      var total = nodeLists.length - 1;

      function getFirstField()
      {
         number = 0;
         outputMessage();
      }     
      function getPreviousField()
      {
         if (number < 1)
         {
            number = 0;
         }
         else
         {
            number--;
         }
         outputMessage();
      }
      function getNextField()
      {
         if (number > total - 1)
         {
            number = total;
         }
         else
         {
            number++;
         }
         outputMessage();
      } 
      function getLastField()
      {
         number = total;
         outputMessage();
      }
      function outputMessage()
      {
         nodeName = nodeLists[number].firstChild;
         nodeSex = nodeName.nextSibling;
         nodeBlood = nodeSex.nextSibling;
         nodeStar = nodeBlood.nextSibling;
         field1.innerHTML = nodeName.firstChild.nodeValue;
         field2.innerHTML = nodeSex.firstChild.nodeValue;
         field3.innerHTML = nodeBlood.firstChild.nodeValue;
         field4.innerHTML = nodeStar.firstChild.nodeValue;     
      }
   </script>     
</head>
<body onload="getFirstField()">
   <center>
      <h1>使用 XML Data Source Control</h1>
      <table border="1">
         <tr>
            <td width="80">姓名</td>
            <td width="100">
               <span id="field1"></span>
            </td>
         </tr>
         <tr>
            <td>性別</td>
            <td>
               <span id="field2"></span>
            </td>
         </tr>
         <tr>
            <td>血型</td>
            <td>
               <span id="field3"></span>
            </td>
         </tr>
         <tr>
            <td>星座</td>
            <td>
               <span id="field4"></span>
            </td>
         </tr>
      </table>   
      <br /><br />   
      <button onclick="getFirstField()">
         第一筆
      </button>     
      <button onclick="getPreviousField()">
         上一筆
      </button>
      <button onclick="getNextField()">
         下一筆
      </button>
      <button onclick="getLastField()">
         最後一筆
      </button>
   </center>
</body>
</html>


以上的寫法只能在IE執行,在FF會出現nodeLists未定義,但是變數不是可以直接用嗎?上面的xmldoc和nodeXML可以直接使用,若要改成標準要如何修改呢?
有請各位幫忙了,謝謝。

發表人:  fanta [ 2007-07-17, 09:23 ]
文章主題 : 

我將宣告部份改成以下:
代碼:
var xmldoc = document.getElementById("database").XMLDocument;
var nodeXML = xmldoc.documentElement;
var nodeLists = nodeXML.childNodes;


似乎還是不行,不知道該如何下手了

發表人:  BobChao [ 2007-07-17, 09:48 ]
文章主題 : 

<xml ...></xml>
這個標簽好像是 IE 專用的? (XML Data Island?)
現在來說,如果要讀取外部的 XML 檔,應該會用 XMLHttpRequest 來讀入再行操作。

發表人:  kourge [ 2007-07-17, 12:25 ]
文章主題 : 

<xml> 是 IE 專有的 XML data island,Firefox 不支援。
Mozilla 的對應技術似乎是 XBL,不過 XBL 很麻煩,可以參考這篇文章:
http://developer.mozilla.org/en/docs/Us ... in_Mozilla

發表人:  fanta [ 2007-07-17, 15:33 ]
文章主題 : 

感謝兩位大大回覆
kourge 寫:
<xml> 是 IE 專有的 XML data island,Firefox 不支援。
Mozilla 的對應技術似乎是 XBL,不過 XBL 很麻煩,可以參考這篇文章:
http://developer.mozilla.org/en/docs/Us ... in_Mozilla


我看這篇的example of an XML DataIsland for use in Mozilla or IE感覺好像也是用<xml>標籤,不知該如何是好

BobChao大大說的XMLHttpRequest又該如何來操作呢?希望大大給個範例。

發表人:  kourge [ 2007-07-18, 00:01 ]
文章主題 : 

http://developer.mozilla.org/zh_tw/docs ... B%E7%AF%87
(如果要玩 Ajax 千萬不要剪貼這篇文章裡面的程式碼,應該用 Prototype 或 jQuery 來讓自己省事一點。)

發表人:  fanta [ 2007-07-18, 11:36 ]
文章主題 : 

kourge 寫:
http://developer.mozilla.org/zh_tw/docs/AJAX:%E4%B8%8A%E6%89%8B%E7%AF%87
(如果要玩 Ajax 千萬不要剪貼這篇文章裡面的程式碼,應該用 Prototype 或 jQuery 來讓自己省事一點。)

這看起來好像是由伺服端來執行,若只是在客服端能夠做得到嗎?
還有Prototype 和 jQuery 是什麼?不好意思新手不太清楚
是像C/C++的function prototype一樣嗎,把它寫成副程式或是物件之類的嗎?

發表人:  kourge [ 2007-07-18, 13:36 ]
文章主題 : 

如果是 local 應該做得到。
Prototype 和 jQuery 都是 JavaScript 函式庫。

發表人:  fanta [ 2007-07-18, 15:35 ]
文章主題 : 

感謝大大的解答,大致上是了解了,不過小弟還有一個新手問題,想請問大大是用什麼工具開發html,asp的呢?

發表人:  kourge [ 2007-07-18, 23:39 ]
文章主題 : 

我都是寫 HTML、PHP、和 JavaScript,所以都是手寫,Komodo Edit 是個不錯的免費跨平台編輯器(而且也是以 Mozilla 為基礎)。

發表人:  fanta [ 2007-07-19, 15:59 ]
文章主題 : 

kourge 寫:
我都是寫 HTML、PHP、和 JavaScript,所以都是手寫,Komodo Edit 是個不錯的免費跨平台編輯器(而且也是以 Mozilla 為基礎)。


Komodo Edit的智能感覺還不錯,而且檔案小、速度快,謝謝大大的推薦。

真不好意思,我一直麻煩各位。 :?

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/