DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML與XSLT >> 解析XML中的樹形結構與DOM文檔對象模型
解析XML中的樹形結構與DOM文檔對象模型
編輯:XML與XSLT     

樹結構
XML 文檔始終是描述性的。樹狀結構通常被稱為 XML 樹,它在描述 XML 文檔的過程中扮演一個重要的角色。

這個樹結構包含根(父)元素,子元素等等。通過使用樹狀結構,我們可以了解源自根元素的所有後續分支和子分支。解析從根元素開始,然後向下移動到指向某個元素的第一個分支,從這裡開始處理第一個分支及其子節點。

示例
下面的示例演示了簡單的 XML 樹結構:

XML/HTML Code復制內容到剪貼板
  1. <?xml version="1.0"?>  
  2. <Company>  
  3.     <Employee>  
  4.         <FirstName>Tanmay</FirstName>  
  5.         <LastName>Patil</LastName>  
  6.         <ContactNo>1234567890</ContactNo>  
  7.         <Email>tanmaypatil@xyz.com</Email>  
  8.         <Address>  
  9.             <City>Bangalore</City>  
  10.             <State>Karnataka</State>  
  11.             <Zip>560212</Zip>  
  12.         </Address>  
  13.     </Employee>  
  14. </Company>  

下面的樹結構表示上面的 XML 文檔:

圖中,有一個叫做 <company> 的根元素。裡面又有一個 <Employee> 元素。在雇員元素裡面,又有 5 個分支,分別是 <FirstName>,<LastName>,<ContactNo>,<Email> 和 <Address>。在 <Address> 元素內,又有三個子分支,分別是 <City>,<State> 和 <Zip>。

DOM文檔對象模型
文檔對象模型(DOM)是 XML 的基礎。XML 文檔有一個信息層次結構單位,被稱作節點;DOM 是描述這些節點和它們之間關系的一種方式。

DOM 文檔就是一個節點集合或者按照層次結構組織的信息塊。這個層次結構允許開發人員導航這個節點樹來查詢特定的信息。由於它基於信息層次結構,DOM 也被認為是_基於節點樹_的。

另一方面,XML DOM 還提供了一個 API,允許開發者在節點樹的任意位置添加,編輯,移動或者移除節點,以便創建應用程序。

示例
下面的示例(sample.htm)將一個 XML 文檔("address.xml")解析為一個 XML DOM 對象,然後用 JavaScript 提取了一些信息:

XML/HTML Code復制內容到剪貼板
  1. <!DOCTYPE html>  
  2. <html>  
  3. <body>  
  4. <h1>TutorialsPoint DOM example </h1>  
  5. <div>  
  6. <b>Name:</b> <span id="name"></span><br>  
  7. <b>Company:</b> <span id="company"></span><br>  
  8. <b>Phone:</b> <span id="phone"></span>  
  9. </div>  
  10. <script>  
  11. if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari   
  12.     xmlhttp = new XMLHttpRequest();   
  13. } else {// code for IE6, IE5   
  14.     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");   
  15. }   
  16.   
  17. xmlhttp.open("GET","/xml/address.xml",false);   
  18. xmlhttp.send();   
  19. xmlDoc=xmlhttp.responseXML;   
  20. document.getElementById("name").innerHTML=   
  21. xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;   
  22. document.getElementById("company").innerHTML=   
  23. xmlDoc.getElementsByTagName("company")[0].childNodes[0].nodeValue;   
  24. document.getElementById("phone").innerHTML=   
  25. xmlDoc.getElementsByTagName("phone")[0].childNodes[0].nodeValue;   
  26. </script>  
  27. </body  
  28. </html>  

address.xml 的內容如下:

XML/HTML Code復制內容到剪貼板
  1. <?xml version="1.0"?>  
  2. <contact-info>  
  3.     <name>Tanmay Patil</name>  
  4.     <company>TutorialsPoint</company>  
  5.     <phone>(011) 123-4567</phone>  
  6. </contact-info>  

我們可以把這兩個文 sample.htm 和 address.xml 件保存到同一目錄 /xml 中,然後通過在浏覽器中打開的方式執行 sample.htm 文件。它應該生成如下所示結果:

這裡,可以看到我們提取了每個子節點並顯示了它們的值。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved