Service. Java source code:
Package COM. sinaapp. ssun. service; </P> <p> Import Java. io. inputstream; <br/> Import Java. io. outputstream; <br/> Import Java. util. *; </P> <p> Import Org. xmlpull. v1.xmlpullparser; <br/> Import Org. xmlpull. v1.xmlpullparserfactory; <br/> Import Org. xmlpull. v1.xmlserializer; </P> <p> Import android. util. XML; </P> <p> Import COM. sinaapp. ssun. domain. person; </P> <p> public class service {<br/>/** <br/> * obtain data in the XML file <br/> * @ Param XML <br/> * @ return <br/> * @ throws exception <br/> */<br/> Public static list <person> getpersons (inputstream XML) throws exception {<br/> List <person> Persons = NULL; <br/> xmlpullparser parser = xmlpullparserfactory. newinstance () <br/>. newpullparser (); <br/> // parser = xml. newpullparser (); <br/> parser. setinput (XML, "UTF-8"); <br/> int event = parser. geteventtype (); <br/> person P = NULL; <B R/> while (event! = Xmlpullparser. end_document) {<br/> switch (event) {<br/> case xmlpullparser. start_document: <br/> Persons = new arraylist <person> (); <br/> break; <br/> case xmlpullparser. start_tag: <br/> If ("person ". equals (parser. getname () {<br/> P = new person (); <br/> int id = integer. parseint (parser. getattributevalue (0); <br/> P. setid (ID); <br/>}< br/> If ("name ". equals (parser. getname () {<br/> string name = parser. nexttext (); <br/> P. setname (name); <br/>}< br/> If ("age ". equals (parser. getname () {<br/> int age = integer. parseint (parser. nexttext (); <br/> P. setage (AGE); <br/>}< br/> break; <br/> case xmlpullparser. end_tag: <br/> If ("person ". equals (parser. getname () {<br/> persons. add (p); <br/> P = NULL; <br/>}< br/> break; <br/>}< br/> event = parser. next (); <br/>}< br/> return persons; <br/>}</P> <p>/** <br/> * Save the data to an XML file <br/> * @ Param persons <br/> *@ param out <br/> * @ throws exception <br/> */<br/> Public static void save (list <person> persons, outputstream out) throws exception {<br/> xmlserializer serializer = xml. newserializer (); <br/> serializer. setoutput (Out, "UTF-8"); <br/> serializer. startdocument ("UTF-8", true); <br/> serializer. starttag (null, "persons"); <br/> for (person P: Persons) {<br/> serializer. starttag (null, "person"); <br/> serializer. attribute (null, "person", p. GETID () + ""); </P> <p> serializer. starttag (null, "name"); <br/> serializer. text (P. getname (); <br/> serializer. endtag (null, "name"); </P> <p> serializer. starttag (null, "Age"); <br/> serializer. text (P. getage () + ""); <br/> serializer. endtag (null, "Age"); </P> <p> serializer. endtag (null, "person"); <br/>}< br/> serializer. endtag (null, "persons"); <br/> serializer. enddocument (); <br/> out. flush (); <br/> out. close (); <br/>}</P> <p>Person. Java source code:
Package COM. sinaapp. ssun. domain; </P> <p> public class person {<br/> private string name; <br/> private int age; <br/> private int ID; </P> <p> Public String getname () {<br/> return name; <br/>}< br/> Public void setname (string name) {<br/> This. name = Name; <br/>}< br/> Public int getage () {<br/> return age; <br/>}< br/> Public void setage (INT age) {<br/> This. age = age; <br/>}< br/> Public int GETID () {<br/> return ID; <br/>}< br/> Public void setid (int id) {<br/> This. id = ID; <br/>}</P> <p> Public Person (string name, int age, int ID) {<br/> This. name = Name; <br/> This. age = age; <br/> This. id = ID; <br/>}< br/> Public Person () {<br/> super (); <br/>}< br/> @ override <br/> Public String tostring () {<br/> return "person [name =" + name + ", age = "+ age +", id = "+ ID +"] "; <br/>}< br/>
Text. xml file:
<! -- Test. xml --> <br/> <? XML version = "1.0" encoding = "UTF-8"?> <! -- Start Document Syntax --> <br/> <persons> <br/> <person id = "1"> <br/> <Name> ssun </Name> <br/> <age> 19 </age> <br/> </person> <br/> <person id = "2"> <br/> <Name> COBE </Name> <br/> <age> 24 </age> <br/> </person> <br/> </persons>
Unit Test testservice. Java source code:
Package COM. sinaapp. ssun. test; </P> <p> Import Java. io. file; <br/> Import Java. io. filenotfoundexception; <br/> Import Java. io. fileoutputstream; <br/> Import Java. util. arraylist; <br/> Import Java. util. list; </P> <p> Import android. test. androidtestcase; <br/> Import android. util. log; </P> <p> Import COM. sinaapp. ssun. domain. person; <br/> Import COM. sinaapp. ssun. service. service; </P> <p> public class testservice extends androidtestcase {<br/> private final string tag = "test"; </P> <p> Public void testpersons () throws exception {<br/> List <person> Persons = service. getpersons (this. getclass (). getclassloader (). getresourceasstream ("test. XML "); <br/> for (person P: Persons) {<br/> log. I (TAG, P. tostring (); <br/>}</P> <p> Public void testsave () throws exception {<br/> List <person> Persons = new arraylist <person> (); <br/> persons. add (new person ("www", 19,23); <br/> persons. add (new person ("hhh", 19,3); <br/> persons. add (new person ("qqq", 19,24); <br/> persons. add (new person ("ooo", 19,25); <br/> file = new file (this. getcontext (). getfilesdir (), "test2.xml"); <br/> fileoutputstream out = new fileoutputstream (File); <br/> service. save (persons, out); <br/>}</P> <p >}< br/>