错误使用的是Android code解析URL时, [英] Error when parsing a URL using Android code

查看:121
本文介绍了错误使用的是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 =htt​​p://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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆