我在我的 Android 项目中使用 JDOM,每次我在服务器响应中收到一组特定字符时,都会收到以下错误消息:
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 列:语法错误
当我通过 google chrome 进行相同的查询时,我可以看到所有的 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;
}
}