Android development tool Class 22_pullpersonservice
Last Update:2015-05-29
Source: Internet
Author: User
<span id="Label3"></p><p><p>Pull parsing XML</p></p><pre><span style="color: #008080;"><span style="color: #008080;">1</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">java.io.InputStream;</span></span><span style="color: #008080;"><span style="color: #008080;">2</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">java.io.OutputStream;</span></span><span style="color: #008080;"><span style="color: #008080;">3</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">java.util.ArrayList;</span></span><span style="color: #008080;"><span style="color: #008080;">4</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">java.util.List;</span></span><span style="color: #008080;"><span style="color: #008080;">5</span></span> <span style="color: #008080;"><span style="color: #008080;">6</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">org.xmlpull.v1.XmlPullParser;</span></span><span style="color: #008080;"><span style="color: #008080;">7</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">org.xmlpull.v1.XmlSerializer;</span></span><span style="color: #008080;"><span style="color: #008080;">8</span></span> <span style="color: #008080;"><span style="color: #008080;">9</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.util.Xml;</span></span><span style="color: #008080;"><span style="color: #008080;">Ten</span></span> <span style="color: #008080;"><span style="color: #008080;"></span> one</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">com.wangjialin.domain.Person;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> a</span> <span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">Pullpersonservice {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Generate XML<span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Static</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Save (list<person> persons, OutputStream Outstream)<span style="color: #0000ff;"><span style="color: #0000ff;">throws</span></span><span style="color: #000000;"><span style="color: #000000;">exception{</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #008080;"><span style="color: #008080;"></span> -</span>XmlSerializer serializer =<span style="color: #000000;"><span style="color: #000000;">Xml.newserializer ();</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Serializer.setoutput (outstream, "UTF-8"<span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span>Serializer.startdocument ("UTF-8",<span style="color: #0000ff;"><span style="color: #0000ff;">true</span></span><span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Serializer.starttag (<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span>, "persons"<span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #008080;"><span style="color: #008080;"></span> a</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> for</span><span style="color: #000000;"><span style="color: #000000;">(person Person:persons) {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> at</span>Serializer.starttag (<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span>, "person"<span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Serializer.attribute (<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span>, "id"<span style="color: #000000;"><span style="color: #000000;">, Person.getid (). toString ());</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Serializer.starttag (<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span>, "name"<span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;">serializer.text (person.getname ());</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Serializer.endtag (<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span>, "name"<span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #008080;"><span style="color: #008080;"></span> in</span>Serializer.starttag (<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span>, "age"<span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;">serializer.text (person.getage (). toString ());</span></span><span style="color: #008080;"><span style="color: #008080;"></span> to</span>Serializer.endtag (<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span>, "age"<span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #008080;"><span style="color: #008080;"></span> -</span>Serializer.endtag (<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span>, "person"<span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> } </span></span><span style="color: #008080;"><span style="color: #008080;"></span> *</span>Serializer.endtag (<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span>, "persons"<span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span> <span style="color: #000000;"><span style="color: #000000;">serializer.enddocument ();</span></span><span style="color: #008080;"><span style="color: #008080;">Panax Notoginseng</span></span> <span style="color: #000000;"><span style="color: #000000;">Outstream.flush ();</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;">outstream.close ();</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #008080;"><span style="color: #008080;"></span> a</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Static</span></span>list<person> getpersons (inputstream Instream)<span style="color: #0000ff;"><span style="color: #0000ff;">throws</span></span><span style="color: #000000;"><span style="color: #000000;">exception{</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #008080;"><span style="color: #008080;"></span> +</span>Person person =<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>list<person> persons =<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span>Xmlpullparser Pullparser =<span style="color: #000000;"><span style="color: #000000;">Xml.newpullparser ();</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span>Pullparser.setinput (instream, "UTF-8"<span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>event = Pullparser.geteventtype ();<span style="color: #008000;"><span style="color: #008000;">// </span></span><span style="color: #008000;"><span style="color: #008000;">trigger the first event</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> while</span>(event! =<span style="color: #000000;"><span style="color: #000000;">Xmlpullparser.end_document) {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Switch</span></span><span style="color: #000000;"><span style="color: #000000;">(event) {</span></span><span style="color: #008080;"><span style="color: #008080;">Wuyi</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">xmlpullparser.start_document:</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>Persons =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>Arraylist<person><span style="color: #000000;"><span style="color: #000000;">();</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> wu</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">xmlpullparser.start_tag:</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>("person"<span style="color: #000000;"><span style="color: #000000;">. Equals (pullparser.getname ())) {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> about</span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>ID =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>Integer (pullparser.getattributevalue (0<span style="color: #000000;"><span style="color: #000000;">));</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span>person =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;">person <span style="color: #000000;">();</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;">Person.setid (id);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(person! =<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span><span style="color: #000000;"><span style="color: #000000;">){</span></span><span style="color: #008080;"><span style="color: #008080;"></span> a</span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>("name"<span style="color: #000000;"><span style="color: #000000;">. Equals (pullparser.getname ())) {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #000000;"><span style="color: #000000;">person.setname (pullparser.nexttext ());</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>("age"<span style="color: #000000;"><span style="color: #000000;">. Equals (pullparser.getname ())) {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span>Person.setage (<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;">short <span style="color: #000000;">(pullparser.nexttext ()));</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">xmlpullparser.end_tag:</span></span><span style="color: #008080;"><span style="color: #008080;"></span> in</span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>("person"<span style="color: #000000;"><span style="color: #000000;">. Equals (pullparser.getname ())) {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;">Persons.add (person);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>person =<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> about</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>event =<span style="color: #000000;"><span style="color: #000000;">Pullparser.next ();</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span><span style="color: #000000;"><span style="color: #000000;">persons;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;">Bayi</span></span>}</pre><p><p>JUnit Test</p></p><pre><span style="color: #008080;"><span style="color: #008080;">1</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Testpullgetpersons ()<span style="color: #0000ff;"><span style="color: #0000ff;">throws</span></span><span style="color: #000000;"><span style="color: #000000;">throwable{</span></span><span style="color: #008080;"><span style="color: #008080;">2</span></span> <span style="color: #008080;"><span style="color: #008080;">3</span></span>InputStream instream =<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. getclass (). getclassloader (). getresourceasstream ("wangjialin.xml"<span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;">4</span></span>list<person> persons =<span style="color: #000000;"><span style="color: #000000;">pullpersonservice.getpersons (instream);</span></span><span style="color: #008080;"><span style="color: #008080;">5</span></span> <span style="color: #008080;"><span style="color: #008080;">6</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> for</span><span style="color: #000000;"><span style="color: #000000;">(person Person:persons) {</span></span><span style="color: #008080;"><span style="color: #008080;">7</span></span> <span style="color: #000000;"><span style="color: #000000;">log.i (TAG, person.tostring ());</span></span><span style="color: #008080;"><span style="color: #008080;">8</span></span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;">9</span></span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;">Ten</span></span> <span style="color: #008080;"><span style="color: #008080;"></span> one</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Testsave ()<span style="color: #0000ff;"><span style="color: #0000ff;">throws</span></span><span style="color: #000000;"><span style="color: #000000;">throwable{</span></span><span style="color: #008080;"><span style="color: #008080;"></span> a</span> <span style="color: #008080;"><span style="color: #008080;"></span> -</span>File File =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>File (<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. getcontext (). Getfilesdir (), "wangjialin.xml"<span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>FileOutputStream OutStream =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">FileOutputStream (file);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #008080;"><span style="color: #008080;"></span> -</span>list<person> persons =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>Arraylist<person><span style="color: #000000;"><span style="color: #000000;">();</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Persons.add (<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>Person ("wangjialin", (<span style="color: #0000ff;"><span style="color: #0000ff;"></span> short</span>) 13<span style="color: #000000;"><span style="color: #000000;">));</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Persons.add (<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>Person ("jialingege", (<span style="color: #0000ff;"><span style="color: #0000ff;"></span> short</span>) 23<span style="color: #000000;"><span style="color: #000000;">));</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span>Persons.add (<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>Person (%, "Android", (<span style="color: #0000ff;"><span style="color: #0000ff;"></span> short</span>) 33<span style="color: #000000;"><span style="color: #000000;">));</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #000000;"><span style="color: #000000;">pullpersonservice.save (persons, outstream);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> a</span>}</pre><p><p><span style="line-height: 1.5;">Wangjialin.xml</span></p></p><pre><pre><span style="color: #008080;">1</span> <?xml version= "1.0" encoding= "UTF-8"?><span style="color: #008080;"> 2</span> <persons><span style="color: #008080;"> 3</span> <person id = "23" & Gt <span style="color: #008080;">4</span> <name>NEwii</name><span style="color: #008080;"> 5</span> <age>21</age><span style="color: #008080;"> 6</span> </person><span style="color: #008080;"> 7 </span> <person id = "><span style="color: #008080;"> 8</span> <name>WiiWill</name><span style="color: #008080;"> 9</span> <age >25</age><span style="color: #008080;"></span> </person> </persons><span style="color: #008080;"></span></pre></pre><p><p></p></p><p><p>Android development tool Class 22_pullpersonservice</p></p></span>