错误使用的是Android code解析URL时, [英] Error when parsing a URL using Android code
本文介绍了错误使用的是Android code解析URL时,的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图解析来自采用Android URL的XML。当我跑我的应用程序,我收到以下错误:
10月6日至4日:57:50.250:W / System.err的(16811):$ org.apache.harmony.xml.ExpatParser ParseException的:在第29行,列854:不匹配标签
10月6日至4日:57:50.250:W / System.err的(16811):在org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:519)
10月6日至4日:57:50.250:W / System.err的(16811):在org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:478)
10月6日至4日:57:50.250:W / System.err的(16811):在org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:317)
10月6日至4日:57:50.250:W / System.err的(16811):在org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:275)
10月6日至4日:57:50.250:W / System.err的(16811):在com.first.MyApp.MyApp $ downloadSaAsnyc.doInBackground(MyApp.java:970)
10月6日至4日:57:50.250:W / System.err的(16811):在com.first.MyApp.MyApp $ downloadSaAsnyc.doInBackground(MyApp.java:1)
10月6日至4日:57:50.250:W / System.err的(16811):在android.os.AsyncTask $ 2.call(AsyncTask.java:252)
10月6日至4日:57:50.250:W / System.err的(16811):在java.util.concurrent.FutureTask中$ Sync.innerRun(FutureTask.java:305)
10月6日至4日:57:50.250:W / System.err的(16811):在java.util.concurrent.FutureTask.run(FutureTask.java:137)
10月6日至4日:57:50.250:W / System.err的(16811):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1081)
10月6日至4日:57:50.250:W / System.err的(16811):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:574)
10月6日至4日:57:50.250:W / System.err的(16811):在java.lang.Thread.run(Thread.java:1020)
从我试图解析类似如下的URL中的XML ...
< ScheduledAudienceResponse>
< ScheduledAudiences>
< ScheduledAudience>
&所述; audience_id→1&下; / audience_id>
< audience_name>琼斯Kapate< / audience_name>
<&名字GT;·琼斯LT; /姓名>
<&姓氏GT; Kapate< /姓氏>
<&ID_NUMBER GT; 123434< / ID_NUMBER>
< branch_id> 164 LT; / branch_id>
&所述; audience_group_id→8&下; / audience_group_id>
< scheduled_date>&2012-06-04 LT; / scheduled_date>
< / ScheduledAudience>
< ScheduledAudience>
&所述; audience_id→4&下; / audience_id>
< audience_name>李四< / audience_name>
<&名字GT;约翰和LT; /姓名>
<&姓氏GT; Doe的LT; /姓氏>
<&ID_NUMBER GT; 12312< / ID_NUMBER>
< branch_id> 164 LT; / branch_id>
&所述; audience_group_id→8&下; / audience_group_id>
< scheduled_date>&2012-06-04 LT; / scheduled_date>
< / ScheduledAudience>
< / ScheduledAudiences>
< / ScheduledAudienceResponse>
在code我使用解析上述XML code看起来像这样...
字符串sa_target_url =http://my.app.com/scheduled_audiences/scheduled_audience_xml/
+用户名+/+密码+/+ CURRENT_DATE +/
+ DEVICE_ID;Log.v(LOG_TAGsa_target_url:+ sa_target_url);网址sa_url =新的URL(sa_target_url);sa_url.openConnection();SPF SAXParserFactory的= SAXParserFactory.newInstance();
的SAXParser SP = spf.newSAXParser();
XMLReader的XR = sp.getXMLReader();ScheduledAudienceHandler myScheduledAudienceHandler =新ScheduledAudienceHandler();xr.setContentHandler(myScheduledAudienceHandler);
xr.parse(新的InputSource(sa_url.openStream()));
感谢您的帮助!
解决方案
通过以下链接的 SaxParsing例
块引用>I'm trying to parse an XML from a URL using Android. When I ran my app, I'm receiving the following error:
06-04 10:57:50.250: W/System.err(16811): org.apache.harmony.xml.ExpatParser$ParseException: At line 29, column 854: mismatched tag 06-04 10:57:50.250: W/System.err(16811): at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:519) 06-04 10:57:50.250: W/System.err(16811): at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:478) 06-04 10:57:50.250: W/System.err(16811): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:317) 06-04 10:57:50.250: W/System.err(16811): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:275) 06-04 10:57:50.250: W/System.err(16811): at com.first.MyApp.MyApp$downloadSaAsnyc.doInBackground(MyApp.java:970) 06-04 10:57:50.250: W/System.err(16811): at com.first.MyApp.MyApp$downloadSaAsnyc.doInBackground(MyApp.java:1) 06-04 10:57:50.250: W/System.err(16811): at android.os.AsyncTask$2.call(AsyncTask.java:252) 06-04 10:57:50.250: W/System.err(16811): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 06-04 10:57:50.250: W/System.err(16811): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 06-04 10:57:50.250: W/System.err(16811): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1081) 06-04 10:57:50.250: W/System.err(16811): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:574) 06-04 10:57:50.250: W/System.err(16811): at java.lang.Thread.run(Thread.java:1020)
The XML from a URL that I'm trying to parse looks like this...
<ScheduledAudienceResponse> <ScheduledAudiences> <ScheduledAudience> <audience_id>1</audience_id> <audience_name>Jones Kapate</audience_name> <firstname>Jones</firstname> <lastname>Kapate</lastname> <id_number>123434</id_number> <branch_id>164</branch_id> <audience_group_id>8</audience_group_id> <scheduled_date>2012-06-04</scheduled_date> </ScheduledAudience> <ScheduledAudience> <audience_id>4</audience_id> <audience_name>John Doe</audience_name> <firstname>John</firstname> <lastname>Doe</lastname> <id_number>12312</id_number> <branch_id>164</branch_id> <audience_group_id>8</audience_group_id> <scheduled_date>2012-06-04</scheduled_date> </ScheduledAudience> </ScheduledAudiences> </ScheduledAudienceResponse>
The code I'm using to parse the XML code above looks like this...
String sa_target_url = "http://my.app.com/scheduled_audiences/scheduled_audience_xml/" + username + "/" + password + "/" + current_date + "/" + device_id; Log.v( LOG_TAG, "sa_target_url: " + sa_target_url ); URL sa_url = new URL( sa_target_url ); sa_url.openConnection(); SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); ScheduledAudienceHandler myScheduledAudienceHandler = new ScheduledAudienceHandler(); xr.setContentHandler( myScheduledAudienceHandler ); xr.parse( new InputSource( sa_url.openStream() ) );
Thanks for any help!
解决方案go through the following link SaxParsing Example
这篇关于错误使用的是Android code解析URL时,的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文