2010-09-24 42 views
1

其實我只是XML的起始者。 在我的任務之一,我做了以下內容:xml對象中的特殊字符問題

var req = new XMLHttpRequest(); 
req.open('GET', 'http://www.mohin.com/test.xml', false); 
req.send(); 
var xmlObj = req.responseXML; 

現在,我收到XML爲:

<?xml version="1.0" encoding="utf-8"?> 
<Items status="as"> 
    <Song title="Helios (Original Mix)"> 
     <Artist name="Chris Hingher" ID="291728"></Artist> 
     <Info StartTime="19:37:39" JazlerID="2219" PlayListerID="" /> 
    </Song> 
    <Song title="I Was Drunk"> 
     <Artist name="Riva Starr Feat. N�ze" ID="292052"></Artist> 
     <Info StartTime="19:45:38" JazlerID="2267" PlayListerID="" /> 
    </Song> 
    ............. 
</Items> 

你可以看到,有在標籤的name屬性特殊字符第二個標籤,爲此我得到一個解析錯誤,爲此我不能讀取XML對象。看到這個標籤:<Artist name="Riva Starr Feat. N�ze" ID="292052"></Artist>並查看它的名稱屬性。

有沒有人可以爲我解決這個問題? 我真的需要檢索每個藝術家的名字是這樣的:

​​

感謝 Mohin酒店

回答

3

它看起來像用於保存XML文檔的編碼不是在XML prolog(encoding =「utf-8」)中指定的編碼。如果XML文件被編輯並由啞編輯器手動保存,就會發生這種情況。

假設您可以更改XML文檔,將encoding attibute從「utf-8」修改爲「iso-8859-1」。如果有效,那麼您應該更仔細地對XML文檔進行編碼。

+0

問題肯定在服務器端,只要在XML聲明中設置UTF-8是不夠的。您必須使用UTF-8編碼實際編寫輸出,否則它將以平臺默認方式出現,在這種情況下,看起來像iso-8859-1,因爲正確指出了@gawi。 – 2010-09-24 19:28:49

+0

嗨,非常感謝您的回答。我無法通過我的代碼解決問題嗎? XML是一種軟件生成的XML,所以我不能修改或修改它。 – Mohaimen 2010-09-24 19:52:46

+1

您應該聯繫負責生成XML文檔的網站負責人。我想不出一個簡單的Javascript解決方案來解決這類問題。 – gawi 2010-09-25 01:11:00

0

你檢查你的XML文件的編碼格式?可能來自那裏。

1

創建XML文件時,請使用UTF-8保存它,並聲稱使用UTF-8保存它。

+0

嗨,非常感謝您的回答。我無法通過我的代碼解決問題嗎?我無法更改或修改xml的生成和保存位置 – Mohaimen 2010-09-24 20:03:34

+1

@Mohin問題是,它不是格式良好的XML。它是破損的,越野車,總是有一點你可以拒絕一個輸入,因爲這是不可行的,這可能也可能不會過時,你可以試試像tidy.sourceforge.net這樣的軟件來清理編碼問題 – LarsH 2010-09-25 03:20:11