XML在Web服務中扮演著至關重要的角色,結合多種客戶端和服務器端語言,可以發揮出強大的作用。本文將探討如何使用XML和客戶端JavaScript來顯示XML文件內容、訪問子元素、操作元素等。
在客戶端語言中,瀏覽器兼容性是一個主要問題。對於XML和JavaScript的組合,問題主要在於XML:並非所有瀏覽器都支持解析XML文檔。
以下代碼示例基於IE6。不支持XML的瀏覽器無法讀取這些代碼,因此在這些瀏覽器中查看XML文件時,瀏覽器將忽略所有標籤。
以下是一個示例XML文件,展示了公司員工數據和營業額:
<?xml version="1.0" ?> <company> <employee age="19" sex="M">Premshree Pillai</employee> <employee age="24" sex="M">Kumar Singh</employee> <employee age="21" sex="M">Ranjit Kapoor</employee> <turnover> <year>100,000</year> <year>140,000</year> <year>200,000</year> </turnover> </company>
加載XML文件
您可以通過以下JavaScript代碼加載XML文件:
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); function loadXML(xmlFile) { xmlDoc.async = "false"; xmlDoc.onreadystatechange = verify; xmlDoc.load(xmlFile); xmlObj = xmlDoc.documentElement; }
實際上,函數的最後兩行就足以加載XML文件。前兩行確保我們之後用來操作XML文件數據的任何JavaScript函數都不會對未初始化的對象執行任何操作。因此,調用verify()函數:
function verify() { // 0 对象未初始化 // 1 对象正在加载数据 // 2 对象已加载数据 // 3 可以处理对象中的数据 // 4 对象完全初始化 if (xmlDoc.readyState != 4) { return false; } }
現在可以加載XML文件了:
loadXML('xml_file.xml');
顯示XML文件內容
使用alert(xmlObj.xml);
查看XML文件的全部內容。整個XML文件將按原樣顯示在警告框中,並帶有適當的縮進。
子元素和節點
在上面的XML文件中,<company></company>
是頂級標籤,所有其他標籤都在其下。這些標籤稱為子元素。此XML文件可以用文件夾樹的形式圖形化表示:
在上面的XML文件中,頂級標籤<company></company>
有4個子元素。
子元素的編號(在所有語言中通常如此)從0(零)開始。 <turnover></turnover>
標籤下有3個子元素。
我們可以使用childNodes.length
屬性找到標籤具有的子元素數量。因此,<company></company>
標籤的子元素數量(此處為4)可以通過xmlObj.childNodes.length
找到。
<turnover></turnover>
標籤的子元素數量(此處為3)可以通過xmlObj.childNodes(3).childNodes.length
找到。
我們在這裡使用childNodes(3)
,因為<turnover></turnover>
是<company></company>
的第3個子元素。
測試子元素
您可以使用childNodes(i).hasChildNodes
測試特定節點子元素是否具有任何子元素。
因此,xmlObj.childNodes(3).hasChildNodes()
將返回true。 xmlObj.childNodes(2).hasChildNodes()
將返回false,因為<employee></employee>
標籤沒有任何子元素。
獲取標籤名稱
您可以使用childNodes(i).tagName
獲取子元素的標籤名稱。因此,xmlObj.tagName
將返回“company”。 xmlObj.childNodes(0).tagName
將返回“employee”。 xmlObj.childNodes(3).childNodes(0).tagName
將返回“year”。
顯示標籤的內容
在XML文件中,第一個<employee></employee>
標籤的內容是“Premshree Pillai”。您可以使用xmlObj.childNodes(0).firstChild.text
獲取此值。
<?xml version="1.0" ?> <company> <employee age="19" sex="M">Premshree Pillai</employee> <employee age="24" sex="M">Kumar Singh</employee> <employee age="21" sex="M">Ranjit Kapoor</employee> <turnover> <year>100,000</year> <year>140,000</year> <year>200,000</year> </turnover> </company>
屬性
在XML文件中,<employee></employee>
標籤有3個屬性。可以使用childNodes(i).getAttribute("AttributeName")
訪問屬性。因此,xmlObj.childNodes(0).getAttribute("id")
將返回“001”。 xmlObj.childNodes(1).getAttribute("age")
將返回“24”。 xmlObj.childNodes(2).getAttribute("sex")
將返回“F”。
...(後續內容,包括FAQ部分,可以根據同樣的方式進行改寫,保持原意,調整措辭和句式。)
以上是使用JavaScript文章讀取和顯示服務器端XML-第1部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!