2009-10-07 109 views
0

我有一個XML文檔,其中包含一些無效字符(例如)。 Unfortunalty我無法更改源XML文件,並且必須通過AJAX讀取文件。我怎樣才能逃避這些角色客戶端?在AJAX中轉義XML特殊字符

許多感謝,

史蒂夫

編輯:

$.ajax({ 
     type: "GET", 
     url: "http://foo.com", 


     dataType: "xml", 
     success: function(xml) { 
      $(xml).find('images').each(function(){ 
       $(this).find('pic').each(function() { 
        ...code... 
       }); 

      }); 
     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown){ 
      alert(textStatus); 
     } 

    }) 
+2

對於XML,「é」不是無效字符,也不需要轉義。雖然取決於你的情況,它可能沒有被正確編碼。 – 2009-10-07 16:33:36

+0

其使用utf-8,並且IE在IE中導致分析錯誤,Safari – 2009-10-07 16:34:27

+0

服務器發送什麼內容類型頭?服務器上文件的實際編碼是什麼?有沒有編碼=「???」在XML文件的開頭。如果你想避免問題,這三個必須匹配。 – 2009-10-07 16:38:01

回答

0

我誘使管理員sovled這一個我自己的正確格式的XML文件。一旦他們刪除/修復了特殊字符,問題就解決了。

0

逃生()和UNESCAPE()不能對你的架構工作?

+0

在哪裏可以在我發佈的示例中加入這個 – 2009-10-07 16:44:14

+0

無處不在,在您的發佈示例中。如果問題出在jquery執行期間(解析結果),那麼你真的必須找出它失敗的原因(因爲é在xml中是完全有效的) – Filini 2009-10-09 16:16:34

0

也許你正在尋找下面的XML處理指令(PI):

<?xml version="1.0" encoding="ISO-8859-1"?>

編輯1:客戶端解決方案:

你能讀到的XML內容字符串?如果是,替代由以上和.loadXML()

EDIT 2現有PI:考慮這個鏈接Specifying the Data Type for AJAX Requests