每天进步一点点~~~~~~~~ww.blog.chinaunix.net
superior_2008
全部博文(322)
2013年(5)
2012年(66)
2011年(87)
2010年(164)
小雅贝贝
wylhisto
split_tw
zyhualov
jcodeer
Unixtom9
wang2kk
格伯纳
Phyllis6
浪花小雨
tejorge
imliuqun
15107126
iOSrever
XPhenix
lstfyt
分类: Java
2010-12-31 11:22:19
解析
org.wp.service
PULLPersonService
Java代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
package org.wp.service; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import android.util.Xml; import org.wp.domain.Person; import org.xmlpull.v1.XmlPullParser; public class PULLPersonService { public static List<Person> readXml(InputStream inStream) throws Exception { List<Person> persons = null; // Android提供了Xml 用来得到XmlPull解析器 XmlPullParser parser = Xml.newPullParser(); // 将输入流传入 设定编码方式 parser.setInput(inStream, "UTF-8"); /** * Pull读到xml后 返回数字 * 读取到xml的声明返回数字0 START_DOCUMENT * 读取到xml的结束返回数字1 END_DOCUMENT * 读取到xml的标签开始返回数字2 START_TAG * 读取到xml的结束标签返回数字3 END_TAG * 读取到xml的文本返回数字4 TEXT */ int eventCode = parser.getEventType(); // 只要这个事件返回的不是1 我们就一直读取xml文件 Person person = null; while (eventCode != XmlPullParser.END_DOCUMENT) { switch (eventCode) { case XmlPullParser.START_DOCUMENT: { // 文档开始事件 persons = new ArrayList<Person>(); break; } case XmlPullParser.START_TAG: { // 开始元素 if ("person".equals(parser.getName())) { person = new Person(); person.setId(new Integer(parser.getAttributeValue(0))); } else if (person != null) { // 如果当前元素的下一个元素是文本节点 // 就可以直接用nextText()这个方法来得到文本节点的内容 if ("name".equals(parser.getName())) { person.setName(parser.nextText()); } else if ("age".equals(parser.getName())) { person.setAge(new Short(parser.nextText())); } } break; } case XmlPullParser.END_TAG: { // 结束元素 if ("person".equals(parser.getName()) && person != null) { persons.add(person); person = null; } break; } } // 没有结束xml文件就推到下个进行解析 eventCode = parser.next(); } return persons; } }
org.wp.
PULLPersonServiceTest
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
package org.wp.xml; import java.io.InputStream; import java.util.List; import android.util.Log; import org.wp.domain.Person; import org.wp.service.PULLPersonService; import android.test.AndroidTestCase; public class PULLPersonServiceTest extends AndroidTestCase { private static final String TAG = "PULLPersonServiceTest"; public void testReadXml() throws Exception { InputStream inStream = PULLPersonServiceTest.class.getClassLoader() .getResourceAsStream("wp.xml"); List<Person> persons = PULLPersonService.readXml(inStream); for (Person person : persons) { Log.i(TAG, person.toString()); } } }
上一篇:Android学习笔记(六)
下一篇:Android学习笔记(八)
chinaunix网友2011-01-03 14:32:37
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com
登录 注册