- android中,基本使用网络资源方式如下(同步)
try { URL url = new URL(myFeed); // Create a new HTTP URL connection URLConnection connection = url.openConnection(); HttpURLConnection httpConnection = (HttpURLConnection)connection; int responseCode = httpConnection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { InputStream in = httpConnection.getInputStream(); processStream(in); } } catch (MalformedURLException e) { Log.d(TAG, "Malformed URL Exception.", e); } catch (IOException e) { Log.d(TAG, "IO Exception.", e); }
- 于此同时,android中解析XML主要有3种,分别为DOM解析器、SAX解析器和PULL解析器。
- DOM解析器,DomBuilder,通过DocumentBuilderFactory获取。这两个类都是javax包中定义的,不同于j2SE的是,android中重写了后者,直接获取了apache
harmony的实现,不幸的是,harmony的项目在2011年时候已经被apache放弃了。
HttpURLConnection httpConnection = (HttpURLConnection) connection; int responseCode = httpConnection.getResponseCode(); if (responseCode == httpConnection.HTTP_OK) { InputStream in = httpConnection.getInputStream(); DocumentBuilderFactory dbf = DocumentBuilderFactory .newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); // 分析input Document dom = db.parse(in); Element docEle = dom.getDocumentElement(); }
-
SAX解析器。SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。 SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事件。所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口。
SAXParserFactory factory=SAXParserFactory.newInstance(); SAXParser parser=factory.newSAXParser(); MyHandel handel=new MyHandel (); //此处MyHandle继承自DefaultHandel parser.parse(inputStream, handel);
- PULL解析器。以下来自android
training,google比较推荐使用这个解析器
为什么要学习PULL解析器呢?因为PULL解析是在XML文档中寻找想要的标记,把需要的内容拉入内存,而不是把整个文档都拉入内存,这种方式比较适合手机等内存有限的小型的移动设备。We recommend
XmlPullParser
, which is an efficient and maintainable way to parse XML on Android. Historically Android has had two implementations of this interface:-
KXmlParser
viaXmlPullParserFactory.newPullParser()
. -
ExpatPullParser
, viaXml.newPullParser()
.
factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser xpp = factory.newPullParser();
-
- DOM解析器,DomBuilder,通过DocumentBuilderFactory获取。这两个类都是javax包中定义的,不同于j2SE的是,android中重写了后者,直接获取了apache
harmony的实现,不幸的是,harmony的项目在2011年时候已经被apache放弃了。
相关文章
- 02-01android – 如何使用ActionScript 3访问APK文件中的资源? (Adobe AIR)
- 02-01Android项目中如何使用资源文件,成功定级腾讯T3-2
- 02-01Android-自定义图像资源的使用(2)(1),面试宝典
- 02-01Android中使用HttpGet和HttpPost访问HTTP资源
- 02-01Android在程序代码中使用String资源
- 02-01Android开发之使用URL訪问网络资源
- 02-01【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
- 02-01Android:dimen尺寸资源文件的使用(转)
- 02-01Android应用程序如何使用Internet资源?
- 02-01Android导出jar包后的资源使用问题