#android
#Android
Вопрос:
Я анализирую xml из URL.URL имеет номер мобильного IMEI и строку поиска, основанную на моем приложении. я поместил свой код синтаксического анализа xml в Android project, он не работает. но если я запускаю как отдельную Java-программу, она работает. пожалуйста, помогите мне.
Log.e("rsport-", "function1");
try{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setIgnoringComments(true);
factory.setCoalescing(true); // Convert CDATA to Text nodes
factory.setNamespaceAware(false); // No namespaces: this is default
factory.setValidating(false); // Don't validate DTD: also default
DocumentBuilder parser = factory.newDocumentBuilder();
Log.e("rsport-", "function2");
Document document = parser.parse("http://demo.greatinnovus.com/restingspot/search?userid=xxxxxxxxxxxxxxxxamp;firstname=aamp;lastname=a");
Log.e("rsport-","function3");
NodeList sections = document.getElementsByTagName("Searchdata");
int numSections = sections.getLength();
for (int i = 0; i < numSections; i )
{
Element section = (Element) sections.item(i);
if(section.hasChildNodes()==true){
NodeList section1=section.getChildNodes();
for(int j=0;j<section1.getLength();j ){
if(section1.item(j).hasChildNodes()==true) {
for(int k=0;k<section1.item(j).getChildNodes().getLength();k )
xmlvalue=String.valueOf(section1.item(j).getChildNodes().item(k).getNodeValue()).trim();
arl.add(xmlvalue);
}
}
}
}
}
}
catch(Exception e){}
System.out.println("id" id " searchdatacount" searchdatacount);
System.out.println("---------");
ListIterator<String> litr = arl.listIterator();
while (litr.hasNext()) {
String element = litr.next();
Log.e("rsport-", "elememt");
}
после Log.e("rsport-", "function2")
; не работает.
Комментарии:
1. Выдает ли он исключение? Каков
logcat
вывод?2. скажите мне, какая ошибка у вас возникла в вашем Logcat и какой тег в вашем xml вы хотите проанализировать
3. это показывает, что исключение состоит в том, что для источника ввода требуется либо поток, либо считыватель logcat 04-25 19:01:22.443: ОШИБКА / rsport(2177): {chap=hjdasgdas} 04-25 19:01: 22.453: ОШИБКА / listview (2177): android.widget. ListView @ 43621388 04-25 19:01:22.563: ОШИБКА / rsport-(2177): function1 04-25 19:01:22.563: ОШИБКА / rsport-(2177): function2 04-25 19:01:22.583: ОШИБКА / rsport—(2177): источнику ввода требуется либо поток, либо считыватель
Ответ №1:
Обратитесь к моему блогу, я дал подробное объяснение, http://sankarganesh-info-exchange.blogspot.com/2011/04/parsing-data-from-internet-and-creating.html и убедитесь, что вы добавили разрешение доступа в Интернет в свой файл манифеста.
Если вы просматривали мой блог, то сможете заметить, что вы неправильно ввели следующую строку
Document document = parser.parse("http://demo.greatinnovus.com/restingspot/search?userid=xxxxxxxxxxxxxxxxamp;firstname=aamp;lastname=a");
используйте следующим образом
URL url =new URL("http://demo.greatinnovus.com/restingspot/search?userid=xxxxxxxxxxxxxxxxamp;firstname=aamp;lastname=a");
Document document= parser.parse(new InputSource(url.openStream()));
Комментарии:
1. привет, сангар Ганеш, я получил следующее в Logcat: это показывает, что исключение состоит в том, что для источника ввода требуется либо поток, либо считыватель logcat 04-25 19: 01: 22.443: ОШИБКА / rsport (2177): {chap= hjdasgdas} 04-25 19: 01: 22.453: ОШИБКА / listview (2177): android.widget. ListView @ 43621388 04-25 19:01:22.563: ОШИБКА / rsport-(2177): function1 04-25 19:01:22.563: ОШИБКА / rsport-(2177): function2 04-25 19:01:22.583: ОШИБКА / rsport—(2177): источнику ввода требуется либо поток, либо считыватель