文章标题

安卓解析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();  
    }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值