##DOM 读取XML 数据(XML保存少量数据的时候后可以选择DOM解析)
1.保存数据的XML文件 users.xml的路径: assets/user/users.xml (在assets目录下新建一个user目录,保存users.xml)
<?xml version="1.0" encoding="utf-8"?>
<users>
<user>
<id>1</id>
<name>roking</name>
<age>25</age>
</user>
<user>
<name>yinuo</name>
<age>24</age>
</user>
</users>
2.写一个User类对应users.xml中的user(定义id,name,age,实现set,get方法)
3.写java code读取user.xml中保存的数据
String fileName = "user/users.xml"; //提示:xml在code的使用路径
public static List<User> getUsersFromXml(String fileName) {
Leg.d(TAG, String.format("getUsersFromXml(%s)", fileName));
List<User> userList = new ArrayList<User>();
DocumentBuilderFactory factory = null;
DocumentBuilder builder = null;
Document document = null;
InputStream inputStream = null;
try {
Log.i(TAG, "====>try start ..");
// found out XML resource first
factory = DocumentBuilderFactory.newInstance();
// found out XML resource and upload
builder = factory.newDocumentBuilder();
inputStream = mContext.getResources().getAssets().open(fileName);
document = builder.parse(inputStream);
// found out root element "users"
Element root = document.getDocumentElement();
// found out all elements "user"
NodeList nodes = root.getElementsByTagName(NODE);
// traverse all "user" nodes
User user = null;
for (int i = 0; i < nodes.getLength(); i++) {
user = new User();
// obtain element node
Element user = (Element) (nodes.item(i));
Element id = (Element) user.getElementsByTagName("id").item(0);
user.setId(id.getFirstChild().getNodeValue());
Element name = (Element) user.getElementsByTagName("name").item(0);
user.setName(name.getFirstChild().getNodeValue());
Element age = (Element) user.getElementsByTagName("age").item(0);
user.setAge(age.getFirstChild().getNodeValue());
Log.i(TAG, String.format("user(%s:%s:%s)", user.getId(),user.getName(),user.getAge()));
userList.add(user);
}
} catch (Exception e) {
Leg.d(TAG, String.format("Exception(%s)", e.getMessage()));
} finally {
try {
Leg.d(TAG, String.format("inputStream.close()"));
inputStream.close();
} catch (IOException e) {
Leg.d(TAG,String.format("inputStream.close:Exception(%s)",e.getMessage()));
}
}
return userList;
}
******************************************************************************************************************
##使用JSON保存,然后读取数据
1.保存JSON数据,读取JSON数据
final String USER="user";
final String ID ="id";
final String NAME="name";
final String AGE="age";
public final static String USER_JSON= "{"
+ USER+":["
+ "{"+ID+":\"1\","+NAME+":\"roking\","+AGE+":\"25\"},"
+ "{"+ID+":\"2\","+NAME+":\"yinuo\","+AGE+":\"24\"},"
+ "]," + "\"success\":true" + "}";
:
2. 对应USER_JSON中的数据创建User类(定义id,name,age,实现set,get方法)
3.写java code获取JSON中保存的数据
public List<User> readJSON(String json){
List<User> users = null;
User user = null;
Log.i(TAG, "readJSON = "+json);
try{
//JSONObject
JSONObject jsonObject = new JSONObject(json);
Boolean success = jsonObject.getBoolean("success");
if(success){
users = new ArrayList<User>();
JSONArray jsonArray = jsonObject.getJSONArray(USER);
for(int i =0 ; i< jsonArray.length();i++){
JSONObject item = jsonArray.getJSONObject(i);
//
user = new User();
user.setId(item.getInt(ID));
user.setName(item.getString(NAME));
user.setAge(item.getInt(AGE));
users.add(user);
}
}
}catch(Exception e){
Log.i(TAG, ">>>"+e.toString());
}
return users;
}
******************************************************************************************************************
以上只写出了关键的code
-Hope can help you-