AS(四)Android xml解析

xiaoxiao2021-02-28  14

1、为什么要使用xml解析?

xml有两个作用: 1、描述数据 2、作为配置文件存在

xml解析中,xml的作用是上面的第一个作用-描述数据,所以xml解析就是将xml中的数据读出来。

2、什么是xml解析?

该图来源:http://www.runoob.com/w3cnote/android-tutorial-xml.html 解析xml有三种方式,如下图所示:

3、具体案例:(一个pull解析器的用法)

下图来源:http://www.runoob.com/w3cnote/android-tutorial-xml.html(这个博主好厉害啊) 首先看看pull解析xml文件的流程:

接下来上核心代码: public static ArrayList getPersons(InputStream xml)throws Exception { //XmlPullParserFactory pullPaser = XmlPullParserFactory.newInstance(); ArrayList persons = null; Person person = null; // 创建一个xml解析的工厂 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); // 获得xml解析类的引用 XmlPullParser parser = factory.newPullParser(); parser.setInput(xml, “UTF-8”); // 获得事件的类型 int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { switch (eventType) { case XmlPullParser.START_DOCUMENT: persons = new ArrayList(); break; case XmlPullParser.START_TAG: if (“person”.equals(parser.getName())) { person = new Person(); // 取出属性值 int id = Integer.parseInt(parser.getAttributeValue(0)); person.setId(id); } else if (“name”.equals(parser.getName())) { String name = parser.nextText();// 获取该节点的内容 person.setName(name); } else if (“age”.equals(parser.getName())) { int age = Integer.parseInt(parser.nextText()); person.setAge(age); } break; case XmlPullParser.END_TAG: if (“person”.equals(parser.getName())) { persons.add(person); person = null; } break; } eventType = parser.next(); } return persons; }

转载请注明原文地址: https://www.6miu.com/read-450187.html

最新回复(0)