我使用 XMLPullParser 解析一个 XML 文档,该文档不幸包含一些特殊字符,如:或 &... 似乎这些字符中断了解析过程,并且只显示了这些字符之后的文本,而不是之前的文本(如果特殊字符出现在一些文本内容的中间)。我无法控制这个 XML 文件,所以我必须在解析文档时解决这个问题。
我怎样才能做到这一点?我已经做了一些研究,结果表明我能够实现一个名为 ENTITY_REF 的 eventType,但我不知道如何处理这种方法。
会很高兴一些提示。
我的解析器:
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG) {
currentTag = xpp.getName();
} else if (eventType == XmlPullParser.TEXT) {
if ("title".equals(currentTag)) {
currentEvent.setTitle(xpp.getText());
System.out.println("Event title: " + xpp.getText());
}
} else if (eventType == XmlPullParser.END_TAG) {
if ("event".equals(xpp.getName())) {
events.add(currentEvent);
currentEvent = new Event();
}
} else if (eventType == XmlPullParser.ENTITY_REF) {
System.out.println("Entity REF: " + xpp.getText());
}
eventType = xpp.nextToken();
}