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」のみを取得しています。
この問題を解決するにはどうすればよいですか?
1つの問題は、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) {
}