我用JDOM與我的Android項目,每次我得到一個特定的字符在我的服務器響應時間,我結束了這些錯誤消息:JDOM投擲解析異常不良ASCII字符
05- 04 10:08:46.277:E/PARSE:org.jdom.input.JDOMParseException:文檔UTF-8的第95行上的錯誤:在行95,列5263:未關閉的令牌
05-04 10:08:46.277 :E /錯誤處理程序:處理程序失敗:org.jdom.input.JDOMParseException:第1行上的錯誤:在第1行,第0列:語法錯誤
當我通過谷歌瀏覽器進行相同的查詢時, l的XML通過很好,並且實際上沒有區域中的令牌未關閉。在整個應用程序開發過程中,我遇到過幾次這個問題,並且解決方案一直是刪除奇怪的ascii字符(複製/粘貼到這些數據字段中的版權徽標或商標字符等)。我怎樣才能讓它去掉那些字符,或者去掉它們並繼續這個功能。這是我的一個解析函數的例子。
public static boolean parseUserData(BufferedReader br) {
SAXBuilder builder = new SAXBuilder();
Document document = null;
try {
document = builder.build(br);
/* XML Output to Logcat */
if (document != null) {
XMLOutputter outputter = new XMLOutputter(
Format.getPrettyFormat());
String xmlString = outputter.outputString(document);
Log.e("XML", xmlString);
}
Element rootNode = document.getRootElement();
if (!rootNode.getChildren().isEmpty()) {
// Do stuff
return true;
}
} catch (Exception e) {
GlobalsUtil.errorUtil
.setErrorMessage("Error Parsing XML: User Data");
Log.e(DEBUG_TAG, e.toString());
return false;
}
}
您可以上傳一個例子響應這樣的地方我們可以看到它嗎?你也說一些特定的角色會導致問題,但哪些?他們在哪裏被使用? – Jules
我無法上傳響應,因爲上面的代碼是我們實際代碼的調整版本(變量和方法名稱已更改)。我無法上傳誤差很大的XML響應,因爲它包含敏感的客戶信息。當我們的客戶複製/粘貼東西到(我們已經從他們的電子郵件中複製/粘貼它們,像「Powered By Motorola(tm)<--- ascii(tm)」這樣的東西將顯示並引起問題 –
RyanInBinary