Как извлечь внешние файлы XML в приложение для Android

1

В моем приложении Android я хочу получить XML файл из Интернета и проанализировать некоторые теги в этом файле в моем приложении. Я получил рабочий учебник здесь, который использует XMLResourceParser но учебник показывает, как прочитать файл XML из локального каталога.

Каковы вызовы метода для извлечения внешнего XML файла в мое приложение Android?

XmlResourceParser xrp = this.getResources().getXml(R.xml.test);
Теги:

3 ответа

3
Лучший ответ

Вы можете получить InputStream в XML файл, используя следующий код:

URL url = new URL(urlString);
URLConnection connection = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection)connection;
httpConn.setDoInput(true);
httpConn.setRequestProperty("charset", "utf-8");
int responseCode = httpConn.getResponseCode();
if(responseCode != HttpStatus.SC_OK) {
    InputStream xmlStream = httpConn.getInputStream();

    // Pass the xmlStream object to a XPP, SAX or DOM parser.
}
  • 0
    Привет, я добавил фрагмент кода, где я получил XML-файл и назначил его XmlResourceParser. Как упоминалось в вашем примере, я могу назначить объект InputStream для XmlResourceParser ??
  • 0
    Ты можешь. Взгляните на это: developer.android.com/reference/org/xmlpull/v1/… java.lang.String)
2

Если "внешний XML файл" означает загрузку XML файла из Интернета, ознакомьтесь с этой статьей на HelloAndroid, чтобы узнать, как загрузить URL-адрес на ваше устройство.

Что касается фактического синтаксического анализа XML, я нашел SJXP "Простой Java XML Parser" самым простым решением. Он легкий, простой в использовании и работает с использованием обработчиков обратного вызова. На веб-сайте также есть пример кода, который очень полезен. http://www.thebuzzmedia.com/software/simple-java-xml-parser-sjxp/

2

создайте новую папку "raw" в "res", поместите внешний xml в необработанную папку

 InputStream inputStream = getResources().openRawResource(R.raw.yourXMLname);
  • 0
    Нет, я хочу загрузить XML из Интернета, не загружая его
  • 0
    обратитесь к этому ibm.com/developerworks/opensource/library/x-android

Ещё вопросы

Сообщество Overcoder
Наверх
Меню