2013-04-08 4 views
0

Я искал два дня, я, вероятно, видел решение, которое решило бы мою проблему, хотя мне еще предстоит найти тот, который я понимаю.Android Pull Parser из url.xml

Я следую этот учебник - Simple XMLPullParser Tutorial

двух областей, я знаю, что нужно изменить в

Здесь

public List<Employee> parse(InputStream is) { 
    XmlPullParserFactory factory = null; 
    XmlPullParser parser = null; 
    try { 
     factory = XmlPullParserFactory.newInstance(); 
     factory.setNamespaceAware(true); 
     parser = factory.newPullParser(); 

     parser.setInput(is, null); 

     int eventType = parser.getEventType(); 

и здесь

List<Employee> employees = null; 
    try { 
     XMLPullParserHandler parser = new XMLPullParserHandler(); 
     employees = parser.parse(getAssets().open("employees.xml")); 

Это из рабочего примера, ниже взят из того, что я пытаюсь достичь, убрав эту

сотрудников = parser.parse (getAssets() открытый ("employees.xml").);

Я пытался получить что-то вроде

URL URL = новый URL ("http://www.example.xml");

URLConnection connection = url.openConnection();

InputStream in = connection.getInputStream();

сотрудники = parser.parse (in);

Первый кусок Я не уверен, что менять, второй, я знаю, мне нужно добавить URL-адрес и открыть соединение. Затем измените строку employee = parser ..., но до этого нет никакой удачи в получении рабочего ответа.

Я добавил android.permission.INTERNET.

Я также добавил свой собственный XML-файл в папку с ресурсами, копию URL-адреса, которую я хочу проанализировать, которая работает нормально.

Любая помощь была бы принята с благодарностью.

ответ

0

См. Мои ответы здесь. Android : XmlpullParser exception

Кроме того, убедитесь в

XmlUtils.beginDocument(parser,"results"); 

"Результаты" является первым имя узла вашего XML. В вашем случае это могут быть «сотрудники»

Кроме того, для связанных с сетью сервисов может быть недоступен через основной поток пользовательского интерфейса.

Пожалуйста, используйте AsyncTask и добавьте метод в doInBackground().

private class DownloadFilesTask extends AsyncTask<String, Void, String> { 
protected Long doInBackground(String... urls) { 
    //put your xml parsing code here. 
} 

protected void onProgressUpdate(Integer... progress) { 
    setProgressPercent(progress[0]); 
} 

protected void onPostExecute(Long result) { 
    showDialog("Downloaded " + result + " bytes"); 
} 
} 
+0

Спасибо, я дам ваш ответ попробовать, я просто смущен, почему я не могу разобрать URL во втором фрагменте, который находится в main_activity. Я немного уточню свой вопрос. – TheBluePotter