DOM解析XML文件1-ArrayAdapter_simple_list_item_1布局
来源:互联网 发布:淘宝天猫优惠券怎么领 编辑:程序博客网 时间:2024/06/05 10:35
1.新建名为domxmls的Android Application Project
2.User.java
package com.example.domain;public class User { private Integer id; private String name; public User() { super(); // TODO Auto-generated constructor stub } public User(Integer id, String name) { super(); this.id = id; this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User [id=" + id + ", name=" + name + "]"; }}
3.users.xml—-保存在assets文件夹中不会被编译
<?xml version="1.0" encoding="UTF-8"?><users> <user> <id>1</id> <name>chj</name> </user> <user> <id>2</id> <name>bc</name> </user> <user> <id>3</id> <name>wmm</name> </user> <user> <id>4</id> <name>yxh</name> </user> <user> <id>5</id> <name>hl</name> </user> <user> <id>1</id> <name>chj</name> </user> <user> <id>2</id> <name>bc</name> </user> <user> <id>3</id> <name>wmm</name> </user> <user> <id>4</id> <name>yxh</name> </user> <user> <id>5</id> <name>hl</name> </user> <user> <id>1</id> <name>chj</name> </user> <user> <id>2</id> <name>bc</name> </user> <user> <id>3</id> <name>wmm</name> </user> <user> <id>4</id> <name>yxh</name> </user> <user> <id>5</id> <name>hl</name> </user></users>
4.MainActivity.java
注意:这里采用的是ListView的simple_list_item_1布局
package com.example.domxml;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListAdapter;import android.widget.ListView;import com.example.domain.User;public class MainActivity extends Activity { private List<User> users = new ArrayList<User>(); //声明控件对象 视图V private ListView lv_users; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件对象 lv_users=(ListView) findViewById(R.id.lv_users); //视图 jsp html try { // dom解析 users.xml asserts目录中 domParser(); //定义要显示的数组 Model String names[] = new String[users.size()]; for(int i=0;i<users.size();i++){ //用户名存储到names数组中 names[i]=users.get(i).getName(); } //适配器 控制层 C ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names); //设置适配器 lv_users.setAdapter(adapter); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 解析方法 * * @throws ParserConfigurationException * @throws IOException * @throws SAXException */ private void domParser() throws ParserConfigurationException, IOException, SAXException { // 1.创建DocumentBuilderFactory对象 DocumentBuilderFactory builderFactory = DocumentBuilderFactory .newInstance(); // 2.通过工厂对象获取DocumentBuilder DocumentBuilder builder = builderFactory.newDocumentBuilder(); // // 3 获取要解析的xml文件 对应的输入流 InputStream is = getAssets().open("users.xml"); // 4.利用DocumentBuilder的parse方法获取解析的users.xml的document对象 Document document = builder.parse(is); // 5.处理解析 // 1.获取文档的跟节点 users Element root = document.getDocumentElement(); // 2.获取当前根节点下面所有user节点的集合 NodeList nodeList = root.getElementsByTagName("user"); // 遍历孩子节点 for (int i = 0; i < nodeList.getLength(); i++) { // 获取具体的孩子节点 Node node = nodeList.item(i); // user // 创建user对象 User user = new User(); // 获取user节点的所有孩子节点 id name NodeList nlist = node.getChildNodes(); // 遍历孩子节点 for (int index = 0; index < nlist.getLength(); index++) { // 获取具体的孩子节点 Node n = nlist.item(index); // 判断该节点的名称是否是id if (n.getNodeName().equals("id")) { // 设置user的id值 user.setId(Integer.valueOf(n.getTextContent())); // 判断该节点的名称是否是name } else if (n.getNodeName().equals("name")) { // 设置name值 user.setName(n.getTextContent()); } } // 添加到集合中 users.add(user); } }}
5.在activity_main.xml中添加ListView控件
<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" tools:context="${relativePackage}.${activityClass}" > <ListView android:id="@+id/lv_users" android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout>
6.显示效果
3 0
- DOM解析XML文件1-ArrayAdapter_simple_list_item_1布局
- DOM解析XML文件2-SimpleAdapter_simple_list_item_2布局
- xml文件的解析-1 dom解析
- DOM解析XML文件3-SimpleAdapter_自定义布局
- DOM解析XML文件
- xml文件解析-DOM
- dom解析xml文件
- DOM解析XML文件
- dom解析xml文件
- Dom解析XML文件
- DOM解析XML文件
- Dom 解析XML文件
- DOM解析XML文件
- DOM解析XML文件
- DOM解析XML文件
- DOM 解析XML文件
- DOM解析xml文件
- DOM解析xml文件
- 没有职业目标
- Fragment在《暗黑3天梯榜》中使用的场景
- C/C++ - sizeof操作符详解
- SQL 2005、2008 中 SCOPE_IDENTITY() 或 @@IDENTITY 返回错误值
- 黑马程序员_java基础之GUI
- DOM解析XML文件1-ArrayAdapter_simple_list_item_1布局
- zend studio12.5.1的临时破解
- GCD高级用法-Dispatch I/O
- xamarin.forms 发送短信,打电话,和发邮件
- Android属性allowBackup安全风险浅析
- 【C语言】使用结构体和malloc函数时的一些错误。
- 【Android进阶】天天动听 悬浮歌词(迷你歌词)效果解读
- HDU 1025 解题报告
- Leetcode: Minimum Size Subarray Sum