JavaScript 解析讀取XML文檔

來源:互聯網
上載者:User

JavaScript解析讀取XML檔案,主要就是載入並解析XML檔案,然後就可以測試解析的XML檔案的內容,列印輸出來。
編寫了一個JavaScript的類來實現讀取一個XML檔案中的資料,實現代碼如下所示:

 

 

<mce:script type="text/javascript"><!--</p><p>/**<br />* @author Shirdrn<br />*/<br />function XMLDoc(){}; // 定義一個XMLDoc類<br />XMLDoc.prototype.xmlFile = ""; // xmlFile為XMLDoc的一個成員,是指“.xml”檔案<br />XMLDoc.prototype.parseXMLDoc = function(){ // 載入解析XML檔案的成員方法<br />var docParser;<br />if(window.ActiveXObject) { // IE瀏覽器支援<br />docParser = new ActiveXObject("Microsoft.XMLDOM");<br />docParser.async = "false";<br />docParser.load(this.xmlFile);<br />return docParser;<br />}<br />else if(window.DOMParser) { // Mozillia瀏覽器支援<br />docParser = new DOMParser()<br />return docParser.parseFromString(this.xmlFile,"text/xml");<br />}<br />else { // 如果不是IE和Mozillia瀏覽器則無法解析,返回false。<br />return false;<br />}<br />}<br />XMLDoc.prototype.print = function(readTagName,readTagCnt) { // 列印輸出讀取的XML檔案的內容資訊<br />var xmlDoc = this.parseXMLDoc(); // 調用成員方法parseXMLDoc()載入解析XML檔案<br />var users = xmlDoc.getElementsByTagName(readTagName); // 擷取指定標籤名稱的資料的一個數組users<br />for(var i=0 ; i<users.length ; i++) { // 雙重迴圈迭代輸出<br />document.write("<B>第" + (i+1) + "條記錄資訊:</B><BR>");<br />for(var j=0 ; j<readTagCnt ; j++) {<br />var tagname = users[i].childNodes[j].tagName;<br />var textvalue = users[i].childNodes[j].text;<br />document.write(tagname + " = " + textvalue + ".<BR>");<br />}<br />}<br />}<br />var xmlDoc = new XMLDoc(); // 建立一個XMLDoc了IDE對象執行個體<br />xmlDoc.xmlFile = "user.xml"; // 設定對象執行個體的成員變數的資料<br />xmlDoc.print("user",6); // 列印輸出<br />// --></mce:script>

 

其中,我們測試使用的XML檔案user.xml的內容如下所示:

<?xml version="1.0" encoding="utf-8" ?><br />- <users><br />- <user><br /><id>22240319830000</id><br /><name>Shirdrn</name><br /><age>26</age><br /><gender>男</gender><br /><email>shirdrn@hotmail.com</email><br /><phone>13843140000</phone><br /></user><br />- <user><br /><id>22040319860001</id><br /><name>Linda</name><br /><age>23</age><br /><gender>女</gender><br /><email>linda@hotmail.com</email><br /><phone>13843140002</phone><br /></user><br /></users>

 

運行測試程式,解析結果輸出如下所示:

 

第1條記錄資訊:
id = 22240319830000.
name = Shirdrn.
age = 26.
gender = 男.
email = shirdrn@hotmail.com.
phone = 13843140000.
第2條記錄資訊:
id = 22040319860001.
name = Linda.
age = 23.
gender = 女.
email = linda@hotmail.com.
phone = 13843140002.

 

在解析XML檔案的時候,要保證對不同類型的瀏覽器提供支援,這裡主要對IE和Mozillia瀏覽器,否則可能無法解析。
關於其它的說明,可以參看程式中的注釋。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.