您的位置:首页 > 移动开发 > Android开发

文章标题

2017-01-20 10:12 274 查看
安卓解析xml比较适合的工具有sax和pull,这里就记录一下pull的使用方法。

以下代码转自http://blog.csdn.net/liuhe688/article/details/6415593/

//读取
XmlPullParser parser = Xml.newPullParser();
//android.util.Xml创建一个XmlPullParser实例
parser.setInput(is, "UTF-8");  //设置输入流 并指明编码方式
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
books = new ArrayList<Book>();
break;
case XmlPullParser.START_TAG:
if (parser.getName().equals("book")) {
book = new Book();
} else if (parser.getName().equals("id")) {
eventType = parser.next();
book.setId(Integer.parseInt(parser.getText()));
} else if (parser.getName().equals("name")) {
eventType = parser.next();
book.setName(parser.getText());
} else if (parser.getName().equals("price")) {
eventType = parser.next();
book.setPrice(Float.parseFloat(parser.getText()));
}
break;
case XmlPullParser.END_TAG:
if (parser.getName().equals("book")) {
books.add(book);
book = null;
}
break;
}
eventType = parser.next();
}
return books;
}


写入

public String serialize(List<Book> books) throws Exception {
//      XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
//      XmlSerializer serializer = factory.newSerializer();

XmlSerializer serializer = Xml.newSerializer(); //由android.util.Xml创建一个XmlSerializer实例
StringWriter writer = new StringWriter();
serializer.setOutput(writer);   //设置输出方向为writer
serializer.startDocument("UTF-8", true);
serializer.startTag("", "books");
for (Book book : books) {
serializer.startTag("", "book");
serializer.attribute("", "id", book.getId() + "");

serializer.startTag("", "name");
serializer.text(book.getName());
serializer.endTag("", "name");

serializer.startTag("", "price");
serializer.text(book.getPrice() + "");
serializer.endTag("", "price");

serializer.endTag("", "book");
}
serializer.endTag("", "books");
serializer.endDocument();

return writer.toString();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml android