Andoid 获取网络资源 PullParser(Pull解析xml文件)
来源:互联网 发布:mac图标放大 编辑:程序博客网 时间:2024/05/21 13:04
获取网络资源
- 因为获取,网络资源,是耗时操作,故此,需要线程来执行。推荐使用,new AsyncTask(异步任务类),或者 new Thread如果需要刷新UI的话还要,增加Handler。
获取,网络资源的步骤
- 定义,资源的网址
- 建立URI 对象,加载资源
- 从URI对象中,取到资源连接
- 设置,请求的方式
- 设置,请求超时
- 通过字节输入流,读取文件
代码
//被 解析的,文件网络路径 String UriPath="http://172.20.10.3:8080/testPullParser.xml"; //定义 uri URL uri= null; try { uri = new URL(UriPath); //得到网络连接 HttpURLConnection httpURLConnection= (HttpURLConnection) uri.openConnection(); //设置,网络请求方式 httpURLConnection.setRequestMethod("GET"); //设置,请求超时(一旦超过这个时间点,就结束,请求),的时间 单位毫秒 httpURLConnection.setConnectTimeout(6000); //通过,字节输入流读取,文件 InputStream URlInput=httpURLConnection.getInputStream(); BufferedInputStream bufferedInputStream=new BufferedInputStream(URlInput); byte[] bytes = new byte[1024]; int len=0; StringBuffer stringBuffer=new StringBuffer(); while((len=bufferedInputStream.read(bytes))!=-1){ String news=new String(bytes,0,len); stringBuffer.append(news); } Log.i("test",stringBuffer.toString());
PullParser
使用PullParser解析,网络xml(接上面的,网路资源)
//建立,xmlPullParser 解析对象 XmlPullParser pullParser=Xml.newPullParser(); try { //设置,解析的数据源,以及解析的编码 pullParser.setInput(URlInput,"UTF-8"); //取到第一行,节点类型 int typeCount=pullParser.getEventType(); String pullXmlName=null; //当前节点编号,不等于最后一个节点时 while (typeCount!=XmlPullParser.END_DOCUMENT){ pullXmlName=pullParser.getName(); //取到,每一个标签的名字 switch (typeCount){ case XmlPullParser.START_TAG: //当是 开始标签时 //如果,是根标签 我的xml根标签是Test if("Test".equals(pullXmlName)){ Log.i("test","<"+pullXmlName+">"); }else if("Stu".equals(pullXmlName)){//当是,子标签时 //pullParser.getAttributeValue(0) 取,当前这个,标签的第一个(从零开始,第二个就是1,),属性 //pullParser.getAttributeName(0) 取第一个属性的名字 Log.i("test","<"+""+pullXmlName+" "+""+pullParser.getAttributeName(0)+"=”"+pullParser.getAttributeValue(0)+"“>"); }else if("id".equals(pullXmlName)){ //pullParser.nextText(); 取下个标签内的值 Log.i("test","<"+pullXmlName+"> "+pullParser.nextText()+"</"+pullXmlName+"> "); } break; case XmlPullParser.END_TAG: //是 结束标签时 //如果,是根标签 我的xml根标签是Test if("Test".equals(pullXmlName)){ Log.i("test","</"+pullXmlName+">"); }else if("Stu".equals(pullXmlName)){//当是,子标签时 Log.i("test","</"+pullXmlName+">"); }else if("id".equals(pullXmlName)){ //当时,子标签内的标签时 Log.i("test","</"+pullXmlName+">"); } break; } //取到,xml文件中的,下一行 typeCount=pullParser.next(); } } catch (XmlPullParserException e) { e.printStackTrace(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }
阅读全文
0 0
- Andoid 获取网络资源 PullParser(Pull解析xml文件)
- Android-PullParser解析xml文件
- 解析xml文件步骤 -- pullparser
- XML及PullParser解析
- Android Xml,PullParser,解析
- Pull解析XML文件
- Pull解析xml文件
- pull解析xml文件
- Pull解析xml文件
- pull解析xml文件
- pull解析xml文件
- pull解析xml文件
- Pull解析xml文件
- Pull解析XML文件
- pull解析xml文件
- pull解析xml文件
- Pull解析Xml文件
- Pull解析XML文件
- 关于百度编辑器中图片手机端自适应、微信jssdk当前页链接
- 【华为机试】数字颠倒
- 鼠标悬浮实现各种图片散开的特效
- 遍历文件夹下所有.jpg文件
- keras2可视化遇到pydot&graphviz无法导入问题
- Andoid 获取网络资源 PullParser(Pull解析xml文件)
- POJ
- Maven部署war包到远端tomcat
- PAT(Basic Level)_1030_完美数列
- 2017山东省-D-Hex
- Ubuntu下的重要的3个问题:ssh、ftp、权限的配置
- 网络编程最佳实践一
- href="#"与href="javascript:void(0)"的区别
- 数据库备份数据的最佳方式