public void pullCreateXml() throws IllegalArgumentException, IllegalStateException, IOException{ //要存储的数据 Person person1=new Person(1, "Lucy", 15); Person person2=new Person(2, "Tim", 20); List<Person> persons=new ArrayList<Person>(); persons.add(person1); persons.add(person2); //要存储的xml文件的位置 OutputStream outputStream=openFileOutput("test.xml", MODE_PRIVATE); //使用Xml工具类,获得serializer对象,pull解析器和生成器可以用Xml工具类直接获得,也可以像下面那样获得 //XmlPullParserFactory.newInstance().newPullParser(); // XmlPullParserFactory.newInstance().newSerializer(); XmlSerializer serializer=Xml.newSerializer(); serializer.setOutput(outputStream, "UTF-8"); serializer.startDocument("UTF-8", true);//开始文档 serializer.startTag(null, "persons"); //开始根节点persons for(Person p:persons){ serializer.startTag(null, "person");//开始person节点 serializer.attribute(null, "id", p.getId()+"");//person节点的属性 serializer.startTag(null, "name");//开始name节点 serializer.text(p.getName());//name的文本节点 serializer.endTag(null, "name");//结束name节点 serializer.startTag(null, "age");//开始age节点 serializer.text(p.getAge()+"");//age的文本节点 serializer.endTag(null, "age");//结束age节点 serializer.endTag(null, "person");//结束person节点 } serializer.endTag(null, "persons");//结束根节点persons serializer.endDocument();//结束文档 }
生成的xml文件格式如下:
<?xml version="1.0" encoding="UTF-8"?> <persons> <person id="1"> <name>Lucy</name> <age>15</age> </person> <person id="2"> <name>Tim</name> <age>20</age> </person> </persons>