我正在制作一个使用 SAX 解析器解析 XML 的 android 应用程序。
在 XML 中有标签:
<title>Deals & Dealmakers: Technology, media and communications M&A </title>
如您所见,它包含一些特殊的章程,例如&
问题是我正在使用 SAX 的隐式方法:
@Override
public void characters(char[] ch, int start, int length) throws SAXException{}
在这里,参数 'char[] ch' 应该获取整行Deals & Dealmakers: Technology, media and communications M&A
但它只获取“Deals”。
我该如何解决这个问题?
一个问题可能是因为我将 XML 传递给 SAX 解析器的方式。我需要更改编码或格式吗?
目前,我InputStream
使用以下代码将 XML 作为 & 传递:
HttpResponse httpResponse = utils.sendRequestAndGetHTTPResponse(URL);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = httpResponse.getEntity();
InputStream in = entity.getContent();
parseResponse(in);
}
// Inside parseResponse method:
try {
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xmlReader = sp.getXMLReader();
MyHandler handler = new MyHandler();
xmlReader.setContentHandler(handler);
xmlReader.parse(new InputSource(in));
} catch (Exception e) {
}