2013-03-12 29 views
1

有沒有人知道任何一個JavaScript函數需要一個字符串並返回無效的XML 1.0字符?如何從JavaScript字符串中去除無效的XML 1.0字符?

我想從包含utf-8數據的數據庫中提取的內容創建有效的XML 1.0,但某些數據包含無效字符,所以我創建的xml不會進行驗證。

用於訪問數據和創建XML的語言是服務器端JavaScript。

+0

定義「無效字符」。 – Quentin 2013-03-12 11:08:27

+0

「使用的語言...」 - 向我們展示一些代碼。您使用什麼庫來構建XML? – Quentin 2013-03-12 11:08:57

+0

無效字符是XML 1.0閱讀器(如Chrome或FireFox)定義爲無效的字符。在瀏覽器中,他們看起來像?字符,正如在這個片段中:「當與最貧窮的窮人一起工作時,70%是女性。」除非我們以這些受益人和......爲目標。該語言是JavaScript。我不確定代碼本身會有幫助,因爲XML結構不是問題。問題是內容中的一些字符被XML 1.0認爲是「無效的」。這是一行代碼,如果有幫助的話:'latestPosts + ='<![CDATA ['+ body +']]>'+ crlf;'。 – 2013-03-12 13:47:40

回答

2

我發現了一種方法,至少剝離導致XML 1.0無效的那些字符。它看起來更像是一個混亂,我相信必須有一個更好的方式去做,而且最後一行看起來有點重複。但它的工作。

如果我有更多的時間,或有人有更好的答案,請讓我知道。謝謝。

str = str.replace(/\u00B7/g,''); 
str = str.replace(/\u00C2/g,''); 
str = str.replace(/\u00A0/g,''); 
str = str.replace(/\u00A2/g,''); 
str = str.replace(/\u00A3/g,''); 
str = str.replace(/[^\u000D\u00B7\u0020-\u007E\u00A2-\u00A4]/g,''); 
相關問題