Android XML创建与解析:Dom和XmlPullParser实战

需积分: 3 3 下载量 3 浏览量 更新于2024-09-13 收藏 109KB DOCX 举报
本文主要讲解了在Android中如何创建XML文件以及使用DOM和XmlPullParser解析XML文件的方法。通过一个简单的示例应用,演示了创建XML、DOM解析和XmlPullParser解析的过程。 在Android开发中,XML文件常用于存储数据或定义界面布局。本教程将详细介绍XML在Android中的创建和解析过程,特别关注DOM和Pull解析器。 首先,我们使用`XmlSerializer`类来创建XML文件。`XmlSerializer`提供了一种序列化对象到XML的接口,允许我们构建XML文档。例如,我们可以创建一个包含书籍信息的XML文件,如下所示: ```java XmlSerializer serializer = Xml.newSerializer(); FileOutputStream outputStream = new FileOutputStream(new File("/sdcard/books.xml")); serializer.setOutput(outputStream, "UTF-8"); serializer.startDocument("UTF-8", true); serializer.startTag(null, "books"); // 添加book元素 serializer.startTag(null, "book"); serializer.attribute(null, "title", "书名1"); serializer.endTag(null, "book"); // 可以添加更多book元素... serializer.endTag(null, "books"); serializer.endDocument(); outputStream.close(); ``` 接下来是解析XML,Android提供了多种解析方式,包括DOM(Document Object Model)、SAX(Simple API for XML)和XmlPullParser。DOM解析器将整个XML文件加载到内存中形成一个树形结构,适合处理小型XML文件。而XmlPullParser是一种事件驱动的解析器,适用于处理大型XML文件,因为它只需要向前读取,不需要一次性加载整个文件。 DOM解析XML的示例: ```java DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new File("/sdcard/books.xml")); NodeList nodeList = doc.getElementsByTagName("book"); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { Element bookElement = (Element) node; String title = bookElement.getAttribute("title"); // 处理获取的book信息... } } ``` XmlPullParser解析XML的示例: ```java XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser parser = factory.newPullParser(); parser.setInput(new FileReader("/sdcard/books.xml")); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_TAG) { if ("book".equals(parser.getName())) { String title = parser.getAttributeValue(null, "title"); // 处理获取的book信息... } } eventType = parser.next(); } ``` 在这个简单的Demo中,有三个按钮:第一个按钮用于创建XML文件,第二个按钮使用DOM解析XML并将结果展示在TextView中,第三个按钮使用XmlPullParser进行同样的操作。通过这样的实践,开发者可以更好地理解和掌握XML在Android中的应用。 总结,Android开发中XML的创建与解析是必备技能。`XmlSerializer`用于创建XML,DOM解析器适用于小型文件,而XmlPullParser适合处理大文件。理解这些基本概念和用法对于Android开发来说至关重要。