Android XmlPullParser

Android XmlPullParser

Android XmlPullParser

public class PersonService {

/**

* 接收一个包含XML文件的输入流, 解析出XML中的Person对象, 装入一个List返回

* @param in 包含XML数据的输入流

* @return 包含Person对象的List集合

*/

public List getPersons(InputStream in) throws Exception {

//1.获取xml文件

InputStream is = PersonService.class.getClassLoader().getResourceAsStream();

//2.获取解析器(Android中提供了方便的方法就是使用Android中的工具类Xml)

XmlPullParser parser = Xml.newPullParser();

//3.解析器解析xml文件

parser.setInput(in, "UTF-8");

List persons = new ArrayList();

Person p = null;

//4.循环解析

for (int type = parser.getEventType(); type != XmlPullParser.END_DOCUMENT; type = parser.next()) { // 循环解析

if (type == XmlPullParser.START_TAG) { // 判断如果遇到开始标签事件

if ("person".equals(parser.getName())) { // 标签名为person

p = new Person(); // 创建Person对象

String id = parser.getAttributeValue(0); // 获取属性

p.setId(Integer.parseInt(id)); // 设置ID

persons.add(p); // 把Person对象装入集合

} else if ("name".equals(parser.getName())) { // 标签名为name

String name = parser.nextText(); // 获取下一个文本

p.setName(name); // 设置name

} else if ("age".equals(parser.getName())) { // 标签名为age

String age = parser.nextText(); // 获取下一个文本

p.setAge(Integer.parseInt(age)); // 设置age

}

}

}

return persons;

}

/**

*将数据写入到Xml文件中.

*@param out 输出到要被写入数据的Xml文件的输出流//就相当于 OutputStream os = new FileOutputStream("a.xml");

*/

public void writePersons(List Books, OutputStream out) throws Exception {

//1.获得XmlSerializer(Xml序列化工具)(通过Android中的工具类Xml得到)

XmlSerializer serializer = Xml.newSerializer();

//2.设置输出流(明确要将数据写入那个xml文件中)

serializer.setOutput(out, "UTF-8");

//3.写入开始文档

serializer.startDocument("UTF-8", true);

//4.开始标签

serializer.startTag(null, "bookstore");

//5.循环遍历

for (Book p : books) {

//6.开始标签

serializer.startTag(null, "book");

//7.给这个标签设置属性

serializer.attribute(null, "id", book.getId().toString());

//8.子标签

serializer.startTag(null, "name");

//9.设置子标签的内容

serializer.text(book.getName());

//10.子标签结束

serializer.endTag(null, "name");

//11.标签结束

serializer.endTag(null, "person");

}

//12.根标签结束

serializer.endTag(null, "persons");

//13.文档结束

serializer.endDocument();

}

}

上一篇 Android Wifi状态监听

下一篇 Android 安全退出应用程序

Python教程

Python 教程

Tkinter 教程

Pandas 教程

NumPy 教程

Flask 教程

Django 教程

PySpark 教程

wxPython 教程

SymPy 教程

Seaborn 教程

SciPy 教程

RxPY 教程

Pycharm 教程

Pygame 教程

PyGTK 教程

PyQt 教程

PyQt5 教程

PyTorch 教程

Matplotlib 教程

Web2py 教程

BeautifulSoup 教程

Java教程

Java 教程

Web教程

HTML 教程

CSS 教程

CSS3 教程

jQuery 教程

Ajax 教程

AngularJS 教程

TypeScript 教程

WordPress 教程

Laravel 教程

Next.js 教程

PhantomJS 教程

Three.js 教程

Underscore.JS 教程

WebGL 教程

WebRTC 教程

VueJS 教程

数据库教程

SQL 教程

MySQL 教程

MongoDB 教程

PostgreSQL 教程

SQLite 教程

Redis 教程

MariaDB 教程

图形图像教程

Vulkan 教程

OpenCV 教程

大数据教程

R语言 教程

开发工具教程

Git 教程

VSCode 教程

Docker 教程

Gerrit 教程

Excel 教程

计算机教程

Go语言 教程

C++ 教程

// 相关文章

Apple TV+ 入华?消息称苹果正与中国移动磋商,为 Vision Pro 内容铺路
想知道HTC现在怎么样了?看完这篇就懂了!
365bet提款速度

想知道HTC现在怎么样了?看完这篇就懂了!

⌛ 06-30 ⚠️ 3101
《魔兽世界》8.15德鲁伊专精选择
365beat怎么下载苹果

《魔兽世界》8.15德鲁伊专精选择

⌛ 08-22 ⚠️ 7601