XML解析---PULL解析
来源:互联网 发布:网络新闻报道的特点 编辑:程序博客网 时间:2024/05/02 00:32
xml之pull解析
public void pullxml() { // 得到XmlPullParser XmlPullParser xmlPullParser = Xml.newPullParser(); try { // 设置要读取的文件 xmlPullParser.setInput(getAssets().open("student.xml"), "utf-8"); // 得到事件类型 int type = xmlPullParser.getEventType(); //String targetname = null;// 放循环外或是成员变量 while (type != XmlPullParser.END_DOCUMENT) {// 如果文档没有结束 switch (type) { case XmlPullParser.START_DOCUMENT:// 读的是<?*****?> ss = new ArrayList<Student>(); System.out.println("读取文件开始"); break; case XmlPullParser.START_TAG: targetname = xmlPullParser.getName();// ****在start_tag中 System.out.println("读取开始标签" + targetname); if ("student".equals(targetname)) { s = new Student(); String value = xmlPullParser.getAttributeValue(0); s.setId(Integer.parseInt(value)); } break; case XmlPullParser.TEXT: if(targetname!=null){//少执行几次.3次 System.out.println("标签内容:" + xmlPullParser.getText()); if ("name".equals(targetname)) { s.setName(xmlPullParser.getText()); } else if ("age".equals(targetname)) { s.setAge(Integer.parseInt(xmlPullParser.getText())); } } break; case XmlPullParser.END_TAG: // 此处重新给targetname赋值,是结束标签 targetname = xmlPullParser.getName(); System.out.println("读取结束标签" + targetname); if ("student".equals(targetname)) { System.out.println(s); ss.add(s); s = null; } targetname = null;// 此处targetname是结束标签,所有要置空, 下一次重新赋值 break; /* * 此项执行不到因为条件是:type!=XmlPullParser.END_DOCUMENT case * XmlPullParser.END_DOCUMENT: System.out.println("读取文档结束"+ss); * break; */ default: break; } // 记得写 改变循环条件********************************循环内 type = xmlPullParser.next(); } // 循环完后打印集合 System.out.println("读取文档结束" + ss); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
还可以这样获取text,在开始标签中判断
case XmlPullParser.START_TAG: name = pullParser.getName(); //针对不同的字段,记得还要在结束标签中判断; if ("news".equals(name)||"blog".equals(name)) { n = new News(); } else if ("title".equals(name)) { //pullParser.nextText()获取text n.setTitle(pullParser.nextText()); } else if ("body".equals(name)) { n.setBody(pullParser.nextText()); } else if ("commentCount".equals(name)) { n.setCommentCount(pullParser.nextText()); } else if ("author".equals(name)||"authorname".equals(name)) { n.setAuthor(pullParser.nextText()); } else if ("pubDate".equals(name)) { n.setPubDate(pullParser.nextText()); } break;
0 0
- XML解析Pull解析
- XML解析---PULL解析
- xml解析之pull解析
- xml解析(使用pull解析)
- android Pull解析(XML解析)
- xml解析之pull解析
- Pull解析器解析XML
- Xml 解析之pull解析
- pull解析器解析xml
- XML解析之pull解析
- XML解析之PULL解析
- XML解析(pull解析)
- XML解析之Pull解析
- XML解析之PULL解析
- Xml解析(pull解析)
- XML解析之pull解析
- XML解析之PULL解析
- XML解析之Pull解析
- 在Unity中使用Lua脚本:语言层和游戏逻辑粘合层处理
- Android Studio无法识别Genymotion设备的解决方法
- Java web 数据库 操作
- 扔玻璃球
- 玛雅人的密码(C#)
- XML解析---PULL解析
- php curl 下载文件
- Unity5 如何做资源管理和增量更新
- jni开发初试
- Windows 10下进行Apache24 php7 MySQL环境搭建
- 网络流三·二分图多重匹配
- lgP3392涂国旗
- ACM学习历程30——回溯算法
- leetcode:22. Generate Parentheses QuestionEditorial Solution