2012-02-06 69 views
0

我有一個xml文件,可能會在插入過程中插入「&」等5個特殊字符。我知道xml會在解析這些字符時拋出錯誤。我使用jQuery ajax方法從xml文件中獲取數據。有沒有什麼辦法克服這個JavaScript的解析器錯誤,如替換特殊字符?如何使用jQuery在xml文件中轉義或替換「&」?

+0

http://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery似乎有你的答案。 – deltree 2012-02-06 17:16:34

+1

你是說服務器返回格式不正確的XML嗎?如果是這樣,你會想要在服務器上修復它。如果不是,我不明白 – 2012-02-06 17:17:19

+0

這個問題@我知道這聽起來太愚蠢了,我甚至不應該問這些問題。服務器沒有返回畸形的XML,它的用戶輸入來自notpad。是否有可能在JavaScript中修復格式不正確的XML?我知道答案是否定的,只是想檢查是否有解決方案。 – manraj82 2012-02-06 17:24:26

回答

2

總之,是的,假設你把你的XML作爲一個字符串(如果我記得沒錯,jQuery的確如此)。然後您可以執行以下操作:

xmlstr = xmlstr.replace(/&/g, "&"); 

對於您要替換的任何字符。

+0

這是最簡單的答案。謝謝! – 2016-09-29 00:20:35

1

假設一個用戶輸入這個:

<foo> &gt;bar&lt; hi & bye &gt;/bar&lt; 

現在,他們很可能意味着:

<foo> &gt;bar&lt; hi &amp; bye &gt;/bar&lt; </foo> 

但他們可能意味着:

<foo> &amp;gt;bar&amp;lt; hi &amp; bye &amp;gt;/bar&amp;lt; </foo> 

可以清理和消毒通過關閉未封閉的標籤並轉義& s應該形成良好的XML文本。我不熟悉任何可以爲你做到這一點的JavaScript庫。

+0

這是一個非常好的觀點 – Mala 2012-02-09 18:22:55

0
XMLText = XMLText.Replace("&", "&amp;"); 
XMLText = XMLText.Replace("""", "&quot;"); 
XMLText = XMLText.Replace("'", "&apos;"); 
XMLText = XMLText.Replace("<", "&lt;"); 
XMLText = XMLText.Replace(">", "&gt;"); 
return XMLText; 
相關問題