用js(JavaScript-jQuery)解析XML文件 無法成功 獲得XML對象,字符串一些心得


原文作者:aircraft

原文地址:https://www.cnblogs.com/DOMLX/p/7822962.html

 

 

解析XML文件遇到的問題

          今天秦博士叫我解析一下XML文件,將里面的所有的X坐標Y坐標放在一個數組里面然后寫在文檔里讓他進行算法比對,大家都知道了啦,解析XML文件獲取里面的坐標數據什么的,當然是用前端的JS,JQ之類的來解析比較方便啦。不過我事先都沒有做過這些東西,所以只好去百度上面搜索別人的代碼來借鑒一下了。

  那么問題就來了,先看這個代碼,這個就是通用的創建一個xmlDoc對象的代碼了。

 1 function parseXML(xmlFile){
 2         // 創建解析XML后的DOM對象
 3         var xmlDoc = null;
 4         // 根據不同瀏覽器進行解析
 5         if(window.DOMParser){
 6             // 其他瀏覽器  
 7             var parser = new DOMParser();
 8             xmlDoc = parser.parseFromString(xmlFile,"application/xml");
 9         }else{
10             // IE瀏覽器
11             var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
12             xmlDoc.async = false;
13             xmlDoc.loadXML(xmlFile);
14         }
15         return xmlDoc;
16     }

測試xml文件是這樣的,(text.xml)

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <DongFang>
 3   <Company>
 4     <cNname>1</cNname>
 5     <cIP>1</cIP>
 6   </Company>
 7   <Company>
 8     <cNname>2</cNname>
 9     <cIP>2</cIP>
10   </Company>    
11   <Company>
12     <cNname>3</cNname>
13     <cIP>3</cIP>
14   </Company>
15 </DongFang>

調用的方法

1 var xmldoc=parseXML(text.xml);
2 
3  var elements = xmlDoc.getElementsByTagName("Company");
4 
5  for (var i = 0; i < elements.length; i++) {
6                 var name = elements[i].getElementsByTagName("cNname")[0].firstChild.nodeValue;
7                 var ip = elements[i].getElementsByTagName("cIP")[0].firstChild.nodeValue;               
8 
9 }

這個時候如果學過XML解析文件的小伙子們都知道這些代碼是沒有問題的,測試方式也是極其簡單的。跑起來的時候也確實會返回一個document對象.

DOCUMENT對象里面出現的卻不是我們要的內容,而是(parsererro),看到了沒有。這個時候得到的對象根本不是我們想要的,我們也不能對它進行什么操作。

那么這個代碼也沒錯,調用方式也沒有錯,為什么會解析不了XML文件 得到我們想要的對象呢?

 嘿嘿嘿, 這是因為目前的主流瀏覽器都不支持解析本地的XML的文件,應該是為了一些安全問題之類的。反正就是不能夠直接的去解析XML了文件了。

  不過因為現在解析文件,傳輸數據什么的基本都是用json了,所以這個問題很少有人會關注了。

  

  看到這里大家可能就會有些疑惑了,那么我到底是怎么解析XML文件完成任務的呢。。。。

    

  嘿嘿嘿,其實我也不知道怎么直接對文件進行解析,這個瀏覽器對文件進行保護,但是沒有對XML字符串進行保護。我們可以直接將XML文件中的代碼用壓縮器壓縮,然后復制粘貼到parseXML(“ ”);這里面就相當於直接解析了XML文件。這時候就返回了一個由整個XML文件內容組成得字符串對象(也相當於XML文件對象了),這時候我們想對T做什么都可以了,也可以一起做一些做愛做的事噢。

 

 

 

如果上面的沒有解決的話 建議可以去看看PYTHON 的解析XML   也是非常簡單     花幾分鍾學一下就行了  其他語法都跟JS很像    

PYTHON解析XML文件http://www.cnblogs.com/DOMLX/p/8213442.html

  

 

 

 

 


大家好我是飛機,是一個想成為全棧工程師的男人。

若有興趣交流分享技術,可關注本人公眾號,里面會不定期的分享各種編程教程,和共享源碼,諸如研究分享關於c/c++,python,前端,后端,opencv,halcon,opengl,機器學習深度學習之類有關於基礎編程,圖像處理和機器視覺開發的知識

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM