android中pull解析,读取xml中的实体类(通过xml发送实体类)

来源:互联网 发布:淘宝上的evisu旗舰店 编辑:程序博客网 时间:2024/06/09 19:55
以下是android代码
private List<TestEntity> showXml() {List<TestEntity> testEntity = null;TestEntity mTestEntity = null;// ========创建XmlPullParser,有两种方式=======// 方式一:使用工厂类XmlPullParserFactorytry {XmlPullParserFactory pullFactory = XmlPullParserFactory.newInstance();XmlPullParser parser = pullFactory.newPullParser();// 方式二:使用Android提供的实用工具类android.util.Xml// XmlPullParser parser = Xml.newPullParser();InputStream inStream = getAssets().open("test.txt");// 解析文件输入流parser.setInput(inStream, "GBK");// 产生第一个事件int eventType = parser.getEventType();// 只要不是文档结束事件,就一直循环while (eventType != XmlPullParser.END_DOCUMENT) {switch (eventType) {// 触发开始文档事件case XmlPullParser.START_DOCUMENT:testEntity = new ArrayList<TestEntity>();break;// 触发开始元素事件case XmlPullParser.START_TAG:// 获取解析器当前指向的元素的名称String name = parser.getName();if ("a".equals(name)) {// 通过解析器获取id的元素值mTestEntity = new TestEntity();}if (mTestEntity != null) {if ("content".equals(name)) {// 获取解析器当前指向元素的下一个文本节点的值mTestEntity.setContent(parser.nextText());}if ("id".equals(name)) {// 获取解析器当前指向元素的下一个文本节点的值mTestEntity.setId(parser.nextText());}if ("yesId".equals(name)) {// 获取解析器当前指向元素的下一个文本节点的值mTestEntity.setYesId(parser.nextText());}if ("type".equals(name)) {// 获取解析器当前指向元素的下一个文本节点的值mTestEntity.setType(parser.nextText());}if ("part".equals(name)) {// 获取解析器当前指向元素的下一个文本节点的值mTestEntity.setPart(parser.nextText());}if ("noId".equals(name)) {// 获取解析器当前指向元素的下一个文本节点的值mTestEntity.setNoId(parser.nextText());}}break;// 触发结束元素事件case XmlPullParser.END_TAG://if ("a".equals(parser.getName())) {testEntity.add(mTestEntity);mTestEntity = null;}break;default:break;}eventType = parser.next();}return testEntity;} catch (XmlPullParserException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return null;}

以下是xml

<iq>  <a>    <content>有女朋友吗?</content>    <id>1</id>    <yesId>2</yesId>    <type>1</type>    <part>头</part>    <noId>3</noId>  </a>  <a>    <content>结婚了吗?</content>    <id>2</id>    <yesId>4</yesId>    <type>2</type>    <part>头</part>    <noId>5</noId>  </a>  <a>    <content>相亲了吗?</content>    <id>3</id>    <yesId>ks1000</yesId>    <type>3</type>    <part>头</part>    <noId>ks2000</noId>  </a>  <a>    <content>有孩子了吗?</content>    <id>4</id>    <yesId>ks3000</yesId>    <type>3</type>    <part>头</part>    <noId>ks4000</noId>  </a>  <a>    <content>怎么不结婚啊?</content>    <id>5</id>    <yesId>ks5000</yesId>    <type>3</type>    <part>头</part>    <noId>ks6000</noId>  </a>  <a>    <content>炼俯卧撑没?</content>    <id>6</id>    <yesId>ks7000</yesId>    <type>1</type>    <part>胸</part>    <noId>1</noId>  </a></iq>


0 0
原创粉丝点击