xml文件解析和序列化


转载:http://blog.csdn.net/liuhe688/article/details/6415593
  1.  XmlPullParser parser = Xml.newPullParser(); //由android.util.Xml创建一个XmlPullParser实例  
  2.         parser.setInput(is, "UTF-8");               //设置输入流 并指明编码方式  
  3.   
  4.         int eventType = parser.getEventType();  
  5.         while (eventType != XmlPullParser.END_DOCUMENT) {  
  6.             switch (eventType) {  
  7.             case XmlPullParser.START_DOCUMENT:  
  8.                 books = new ArrayList<Book>();  
  9.                 break;  
  10.             case XmlPullParser.START_TAG:  
  11.                 if (parser.getName().equals("book")) {  
  12.                     book = new Book();  
  13.                 } else if (parser.getName().equals("id")) {  
  14.                     eventType = parser.next();  
  15.                     book.setId(Integer.parseInt(parser.getText()));  
  16.                 } else if (parser.getName().equals("name")) {  
  17.                     eventType = parser.next();                //parser.getAttributeName(0) 当前标签内第0个属性的名称   parser.getAttributeValue(0)  当前标签内第0个属性对应的值
  18.                                                                 //parser.getAttributeValue("","name"); 得到当前标签内名称为name的值,默认为“”
  19.                     book.setName(parser.getText());  
  20.                 } else if (parser.getName().equals("price")) {  
  21.                     eventType = parser.next();  
  22.                     book.setPrice(Float.parseFloat(parser.getText()));  
  23.                 }  
  24.                 break;  
  25.             case XmlPullParser.END_TAG:  
  26.                 if (parser.getName().equals("book")) {  
  27.                     books.add(book);  
  28.                     book = null;      
  29.                 }  
  30.                 break;  
  31.             }  
  32.             eventType = parser.next();  
  33.         }  
  34.         return books;  
  35.     }  
  36.       
  37.     @Override  
  38.     public String serialize(List<Book> books) throws Exception {  
  39. //      XmlPullParserFactory factory = XmlPullParserFactory.newInstance();  
  40. //      XmlSerializer serializer = factory.newSerializer();  
  41.           
  42.         XmlSerializer serializer = Xml.newSerializer(); //由android.util.Xml创建一个XmlSerializer实例  
  43.         StringWriter writer = new StringWriter();  
  44.         serializer.setOutput(writer);   //设置输出方向为writer  
  45.         serializer.startDocument("UTF-8"true);  
  46.         serializer.startTag("""books");  
  47.         for (Book book : books) {  
  48.             serializer.startTag("""book");  
  49.             serializer.attribute("""id", book.getId() + "");  
  50.               
  51.             serializer.startTag("""name");  
  52.             serializer.text(book.getName());  
  53.             serializer.endTag("""name");  
  54.               
  55.             serializer.startTag("""price");  
  56.             serializer.text(book.getPrice() + "");  
  57.             serializer.endTag("""price");  
  58.               
  59.             serializer.endTag("""book");  
  60.         }  
  61.         serializer.endTag("""books");  
  62.         serializer.endDocument();  
  63.           
  64.         return writer.toString();  
  65.     }  
  66. }  
posted @ 2016-06-05 11:19  凤雏小呆  阅读(284)  评论(0编辑  收藏  举报