Я пытаюсь проанализировать некоторые данные XML из Интернета.В большинстве случаев XML-файлы чистые и хорошо отображаются в моем приложении.Это работает отлично.Я также хочу встроить некоторую безопасность, чтобы приложение не зависало при плохом XML.
Поэтому, когда XML не может быть проанализирован, он переходит к моему блоку catch, где я продолжаю:
try {
Log.e("in try", "try");
/* Create a URL we want to load some xml-data from. */
URL url = new URL("http://172.21.150.140:80/scripts/cgiip.exe/WService=brAccentBe/Android/getVacatureDetails.html?Vacid=" + vacaid + "&Kantoorid=" + kantoorid);
System.out.println("Url " + url);
/* Get a SAXParser from the SAXPArserFactory. */
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
/* Get the XMLReader of the SAXParser we created. */
XMLReader xr = sp.getXMLReader();
/* Create a new ContentHandler and apply it to the XML-Reader*/
vacatureDetailsWebservice vs = new vacatureDetailsWebservice();
xr.setContentHandler(vs);
/* Parse the xml-data from our URL. */
xr.parse(new InputSource(url.openStream()));
/* Parsing has finished. */
/* Our ExampleHandler now provides the parsed data to us. */
vaca = vs.getVacatures();
}
catch (Exception e) {
final AlertDialog.Builder builder = new AlertDialog.Builder(JobDetails.this);
builder.setTitle("Fout in XML");
builder.setMessage("Er is een fout opgetreden in de data. Probeer het later nog eens");
builder.setCancelable(false);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish();
}
});
builder.create().show();
}
Но диалоговое окно не отображается, класс продолжает работать и получает другие исключения, потому что XML не анализируется.Этот метод вызывается в onCreate.
Кто-нибудь видит, что я делаю неправильно?