pull解析xml文件
来源:互联网 发布:学编程用不用面面俱到 编辑:程序博客网 时间:2024/06/08 18:32
1.新建assets文件:
拖xml文件进去
2.MainActivity:
public class MainActivity extends AppCompatActivity { private ListView listView; private ArrayList<Bean> list = new ArrayList<Bean>(); private Bean bean; private ArrayList<Bean2> arrayList; private Bean2 bean2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listView); } public void kaishi(View view) { ArrayList<Bean> k = Ksishijiexi(); listView.setAdapter(new ArrayAdapter<Bean>(MainActivity.this, android.R.layout.simple_list_item_1, k)); } private ArrayList<Bean> Ksishijiexi() { try { InputStream inputStream = getAssets().open("persons.xml"); XmlPullParser newPullParser = Xml.newPullParser(); newPullParser.setInput(inputStream, "utf-8"); int eventType = newPullParser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { String tagname = newPullParser.getName(); switch (eventType) { case XmlPullParser.START_TAG: if ("myclass".equals(tagname)) { bean = new Bean(); } if ("cname".equals(tagname)) { String cname = newPullParser.nextText(); bean.setCname(cname); } if ("persons".equals(tagname)) { arrayList = new ArrayList<>(); } else if ("person".equals(tagname)) { bean2 = new Bean2(); String id = newPullParser.getAttributeValue(0); bean2.setId(id); } else if ("age".equals(tagname)) { String age = newPullParser.nextText(); bean2.setAge(age); } else if ("name".equals(tagname)) { String name = newPullParser.nextText(); bean2.setName(name); } break; case XmlPullParser.END_TAG: if ("person".equals(tagname)) { arrayList.add(bean2); bean.setPersons(arrayList); bean2 = null; } else if ("persons".equals(tagname)) { list.add(bean); } break; default: break; } eventType = newPullParser.next(); } } catch (Exception e) { e.printStackTrace(); } return list; }}
2.Bean:
public class Bean { String cname; ArrayList<Bean2> persons; public Bean(String cname, ArrayList<Bean2> persons) { this.cname = cname; this.persons = persons; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public ArrayList<Bean2> getPersons() { return persons; } public void setPersons(ArrayList<Bean2> persons) { this.persons = persons; } public Bean() { } @Override public String toString() { return "Bean{" + "cname='" + cname + '\'' + ", persons=" + persons + '}'; }}
3.Bean2:
public class Bean2 { String id; String age; String name; public Bean2(String id, String age, String name) { this.id = id; this.age = age; this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Bean2{" + "id='" + id + '\'' + ", age='" + age + '\'' + ", name='" + name + '\'' + '}'; } public Bean2() { }}
阅读全文
0 0
- 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文件
- pull解析XML文件
- PULL解析XML文件
- pull解析XML文件
- pull解析XML文件
- pull解析XML文件
- GCD HDU
- asponse.word 操控word打印内容及打印内容格式错乱处理
- Appium安装+配置环境变量
- unity3d 的octane渲染器发布啦
- mysql分表
- pull解析xml文件
- 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite ) 转
- codeforse 466B
- 第六章 基于UDP的服务器端/客户端
- 网页中使用MySQL
- 安卓开发使用wifi连接调试
- C++之绝不重新定义继承而来的non-virtual函数(36)---《Effective C++》
- Oracle设置主键报错 ORA-02437: 无法验证 (DENGCHAO.TEST)
- Python处理缺失数据