核心提示: wang1 10 wang2 11 wang3 12 wang4 13 将上面的xml文件队形实例化与解析。直接写代码:public class TestCase ex...
wang1 10> wang2 11> wang3 12> wang4 13>
将上面的xml文件队形实例化与解析。
直接写代码:
public class TestCase extends AndroidTestCase { public void test() { // writeToLocal(); Listpersons = parserXmlFromLocal(); for (Person person : persons) { Log.i("testcase", person.toString()); } } private void writeToLocal() { List personlist = getPersonList(); XmlSerializer serializer = Xml.newSerializer(); try { File path = new File(Environment.getExternalStorageDirectory(), "persons.xml"); FileOutputStream fos = new FileOutputStream(path); serializer.setOutput(fos, "utf-8"); serializer.startDocument("utf-8", true); serializer.startTag(null, "persons");// for (Person person : personlist) { // 开始写人 serializer.startTag(null, "person"); serializer .attribute(null, "id", String.valueOf(person.getId())); // 写名字 serializer.startTag(null, "name"); serializer.text(person.getName()); serializer.endTag(null, "name"); // 写年龄 serializer.startTag(null, "age"); serializer.text(person.getAge() + ""); serializer.endTag(null, "age"); serializer.endTag(null, "person"); } serializer.endTag(null, "persons"); serializer.endDocument(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private List getPersonList() { List persons = new ArrayList (); for (int i = 0; i < 20; i++) { persons.add(new Person(i, "wang" + i, 10 + i)); } return persons; } private List parserXmlFromLocal (){ try { File path = new File(Environment.getExternalStorageDirectory(),"persons.xml"); FileInputStream fis = new FileInputStream(path); XmlPullParser parser = Xml.newPullParser(); parser.setInput(fis,"utf-8"); int eventType = parser.getEventType(); List personlist = null; Person person = null; String id; while (eventType != XmlPullParser.END_DOCUMENT){ String tagName = parser.getName(); switch (eventType) { case XmlPullParser.START_TAG: if("persons".equals(tagName)){ personlist = new ArrayList (); }else if ("person".equals(tagName)){ person = new Person(); id = parser.getAttributeValue(null,"id"); person.setId(Integer.valueOf(id)); }else if ("name".equals(tagName)){ person.setName(parser.nextText()); }else if ("age".equals(tagName)){ person.setAge(Integer.valueOf(parser.nextText())); } break; case XmlPullParser.END_TAG: if ("person".equals(tagName)){ personlist.add(person); } break; default: break; } eventType = parser.next(); } return personlist; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }