私の目標は、url から xml ファイルをダウンロードして解析することです。実験には、次の xml ファイルを使用します: https://www.dropbox.com/s/l5qtpcrryuistpk/Adtest.xml
<?xml version="1.0" encoding="UTF-8">
<adsettings>
<adnetwork>AdMob</adnetwork>
<publisherid>12345</publisherid>
</adsettings>
まず、次のコードでダウンロードします。
URL xmlUrl = new URL(XML_SETTINGS_URL);
HttpURLConnection urlConnection = (HttpURLConnection) xmlUrl.openConnection();
urlConnection.connect();
FileOutputStream fileOutputStream = adContext.openFileOutput(SETTINGS_FILENAME,
adContext.MODE_PRIVATE);
InputStream stream = urlConnection.getInputStream();
byte[] buffer = new byte[1024];
while (stream.read(buffer) > -1) {
fileOutputStream.write(buffer);
}
fileOutputStream.close();
urlConnection.disconnect();
次に、私はそれを解析しようとしています:
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
File file = adContext.getFileStreamPath(SETTINGS_FILENAME);
FileReader fileReader = new FileReader(file);
System.out.println(fileReader);
parser.setInput(fileReader);
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
Log.d(TAG, "Start document");
} else if(eventType == XmlPullParser.START_TAG) {
Log.d(TAG, "Start tag "+parser.getName());
} else if(eventType == XmlPullParser.END_TAG) {
Log.d(TAG, "End tag "+parser.getName());
} else if(eventType == XmlPullParser.TEXT) {
Log.d(TAG, "Text "+parser.getText());
}
eventType = parser.next();
}
その結果、開始ドキュメント、html、ヘッド、およびスクリプトのみを受け取り、その後に例外が続きます。
org.xmlpull.v1.XmlPullParserException: unterminated entity ref (position:TEXT @13:51 in java.io.FileReader@4287eae8)
それを解決する方法はありますか?前もって感謝します