2011-11-17 52 views
1

我發現了一個與Android模擬器版本2.1和更少的問題;具體來說,我測試了它的Android模擬器,版本1.5,1.6和2.1。我認爲早期的android版本沒有完整的或者對jQuery或ajax的支持,這聽起來很愚蠢,但我沒有意識到它對XML文件結構的挑剔。我的每個XML文件都以以下XML聲明開頭:android模擬器1.5,1.6,2.1無法解析XML文件與<?xml version =「1.0」encoding =「Shift-JIS」?>

<?xml version="1.0" encoding="Shift-JIS"?> 

現在,Android 2.3.3及更高版本和iOS沒有問題。也許Android 2.2可能會有問題,但我沒有看到它在適用於Android的SDK Manager中可用。

如果我從XML文件中取出此XML聲明,則這些早期的Android版本將加載XML文件。

不起作用:

<?xml version="1.0" encoding="Shift-JIS"?> 
<test>Hello World</test> 

作品:

<test>Hello World</test> 

我試圖同時使用jQuery.ajax()和XMLHttpRequest的以上保留的結果吧。

$.ajax({type: "GET", "test.xml": url, cache: false, async: false}); 

問題是爲什麼這些早期版本的android無法用XML聲明來解析XML結構?也許,一個android 1.5設備可以解析它,但我無法驗證。我只能驗證這些版本的android模擬器對XML文件中的XML聲明有嚴重的問題。

我希望有一種解決方法,並希望得到任何幫助。

謝謝。

回答

2

對於有效的XML,XML聲明實際上並不需要。但它確實允許您定義文件中使用的編碼。我目前無法訪問源代碼,但我敢打賭,如果您要將聲明中定義的編碼更改爲UTF-8或ISO-8859-1,那麼它會解析XML就好了。我已經能夠使用UTF-8編碼來解析XML。

+0

是的,謝謝!目前,我拿出'encoding ='Shift-JIS'',因爲我刪除了XML文件中的任何日語字符。我沒有使用XSLT;所以,我不認爲這是一個大問題。如果問題確實發生,我會按照您的建議將其轉換爲UTF-8或ISO-8859-1。再次感謝你! – user717236

相關問題