qq_25987491 2017-06-13 03:13 采纳率: 50%
浏览 530

为什么android中用pull方法解析xml的时候getname方法总是返回null???

下面是主要的代码
private void send_message(){
new Thread(new Runnable(){
@Override
public void run() {
try{
OkHttpClient client=new OkHttpClient();
Request request=new Request.Builder()
.url("http://10.0.2.2/get_data.xml")
.build();
Response response=client.newCall(request).execute();
String data=response.body().toString();
Log.w("data_", "run: "+data);
show_response(data);
}catch(Exception e){
Log.w("data_", "run: 读取失败");
e.printStackTrace();
}
}
}).start();
}
private void show_response(String response){
try{
String response_="";
XmlPullParserFactory factor = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser=factor.newPullParser();
xmlPullParser.setInput(new StringReader(response));
int eventTyper=xmlPullParser.getEventType();
Log.w("data_is", "show_response: "+eventTyper);
String id="",name="",version="";
while(eventTyper!=XmlPullParser.END_DOCUMENT) {
Log.w("data_is", "show_response: " + "12333333");
String node_name ="";
node_name=xmlPullParser.getName();
Log.w("data_is", "show_response: "+node_name);
switch (eventTyper) {
case XmlPullParser.START_TAG:{
Log.w("data_is", "show_response: " + "lalala");
if ("id".equals(node_name)) {
id = xmlPullParser.nextText();
} else if ("name".equals(node_name)) {
name = xmlPullParser.nextText();
} else if ("version".equals(node_name)) {
version = xmlPullParser.nextText();
}
break;
}

                case XmlPullParser.END_TAG: {
                    if ("app".equals(node_name)) {
                        response_ = "id is " + id + "\n";
                        response_ += "name is " + name + "\n";
                        response_ += "version is " + version + "\n";
                        Log.w("data_is", "show_response: " + response_);
                    }
                    break;
                }
            }
            eventTyper = xmlPullParser.next();
        }
        turn_to_uithread(response_);
    }catch(Exception e){
        e.printStackTrace();
    }

}
private void turn_to_uithread(final String response){
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            show.setText(response);
        }
    });
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 安装svn网络有问题怎么办
    • ¥15 Python爬取指定微博话题下的内容,保存为txt
    • ¥15 vue2登录调用后端接口如何实现
    • ¥65 永磁型步进电机PID算法
    • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
    • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
    • ¥15 如何处理复杂数据表格的除法运算
    • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
    • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
    • ¥15 latex怎么处理论文引理引用参考文献