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 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
    • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序