设为首页 加入收藏

TOP

Android笔记——Android中数据的存储方式(二)(三)
2017-10-12 10:08:34 】 浏览:10033
Tags:Android 笔记 数据 存储 方式
Tag(
null, "type"); xs.startTag(null, "body"); //生成文本节点 xs.text(sms.getBody() + "<body>"); xs.endTag(null, "body"); xs.endTag(null, "message"); } //生成结束标签 xs.endTag(null, "messages"); //告诉序列化器,生成完毕 xs.endDocument(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
  • 权限:AndroidManifest.xml中添加android.permission.WRITE_EXTERNAL_STORAGE
  •  解决问题:
    •   同样,添加一个字符串"<body>",导出xml文件。
    •   

      用浏览器打开,发现没有报错,随意添加的字符串"<body>",做为普通文本,而不是标签显示出来了。如下图:

      

     这是因为,XmlSerializer序列化把字符串"<body>"  做一个字符的转义,我么把生成的xml文件用文本文件打开,可以看到:

    

  

  3.3 XML解析:

  •    这里我们是用Pull解析XML。Pull解析器是一个开源项目,既可以用在Android应用,亦可用在JavaEE上。如果需要在JavaEE应用中使用Pull解析,需要添加Pull解析器的JAR包。但是Android开发平台已经内置了Pull解析器,并且Android系统本身也使用Pull解析器解析各种XML文档,因此Android推荐开发者使用Pull解析器来解析XML文档。
  •   除了Pull解析之外,Java开发者还可使用DOM或SAX对XML进行解析。一般的Java应用会使用JAXP API来解析XML。在实际开发中,使用JDOM或dom4j进行解析可能更加简单。
  •    应用场景:一是解析XML格式的备份数据之类的,二是客户端向服务器请求数据,当数据内容比较多、结构比较复杂的时候,服务器按照一定的格式会把数据进行封装,再把封装之后的数据传送给客户端。服务器封装数据的格式很多,其中的Android中常解析的格式就是XMLJSON
  •   下面案例:查询天气的功能,自动显示在界面上。

  XML资源的内容如下:这里放在项目src下

      

 

  • 布局文件:
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="解析xml" 
            android:onClick="click"
            />
    
    </RelativeLayout>
    View Code
  •  java代码:    
    • City.java(javabean对象):
      package com.bokeyuan.pullparse.domain;
      
      public class City {
      
          private String name;
          private String temp;
          private String pm25;
          public String getName() {
              return name;
          }
          public void setName(String name) {
              this.name = name;
          }
          public String getTemp() {
              return temp;
          }
          public void setTemp(String temp) {
              this.temp = temp;
          }
          public String getPm25() {
              return pm25;
          }
          public void setPm25(String pm25) {
              this.pm25 = pm25;
          }
          public City(String name, String temp, String pm25) {
              super();
              this.name = name;
              this.temp = temp;
              this.pm25 = pm25;
          }
          public City() {
              super();
          }
          @Override
          public String toString() {
              return "City [name=" + name + ", temp=" + temp + ", pm25=" + pm25 + "]";
          }   
      }
        
    • MainActivity.java 
      package com.yuanboyuan.pullparse;
      
      import java.io.InputStream;
      import java.util.ArrayList;
      import java.util.List;
      
      import org.xmlpull.v1.XmlPullParser;
      import org.xmlpull.v1.XmlPullParserException;
      
      import com.yuanboyuan.pullparse.domain.City;
      
      import android.os.Bundle;
      import android.app.Activity;
      i
首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇自定义View等待旋转 下一篇android对象序列化Parcelable浅析

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目