首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓-拉式分析器

安卓-拉式分析器
EN

Stack Overflow用户
提问于 2010-09-11 13:02:49
回答 1查看 1.8K关注 0票数 2

我有一个xml文件,我想解析它以获得学生it和学生名。

代码语言:javascript
运行
复制
<students>
    <student>
         <id type="integer">101</id>
         <name>James</name>
         <degree>
             <id type="integer">1978271</id>
             <name>SCJP</name>
         </degree>
    </student>
    <student>
         <id type="integer">102</id>
         <name>Joseph</name>
         <degree>
             <id type="integer">1978272</id>
             <name>MCST</name>
         </degree>
    </student>
</students>

代码:

代码语言:javascript
运行
复制
while (eventType != XmlPullParser.END_DOCUMENT) {
    parser.next();
    eventType = parser.getEventType();
    switch (eventType){
    case XmlPullParser.START_TAG:   
         tag_name = parser.getName();
         if(tag_name.equalsIgnoreCase("ID")){
              stud_id = parser.nextText().toString();
              Log.i("Id = ", pid);
          } else if (tag_name.equalsIgnoreCase("name")){
              stud_name = parser.nextText().toString();
          } 
          break;
     }
} 

我的问题是:当我使用上面的代码解析XML文件时,我同时得到了IDs(即student-iddegree-id),所以使用拉式解析器 ,我应该用哪种方式来解析文件,以获得只有学生id`<代码>E 215的列表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-11 13:10:23

当您遇到与“学生”匹配的起始标记时,将一些布尔变量(例如,insideStudent )设置为true。类似地,当您遇到“程度”标记时,将另一个insideDegree变量设置为true。当您有一个结束标记时,将它们设置为false (例如,如果您有</student>,那么您将insideStudent设置为false)。现在,当你遇到一个ID标签时,你只需要检查你是在学生内部还是在学位和学生的内部。类似于:

代码语言:javascript
运行
复制
if(tag_name.equalsIgnoreCase("ID")){
    // Get student ID
    if (insideStudent && !insideDegree) {
          stud_id = parser.nextText().toString();
          Log.i("Id = ", pid);
    }
} 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3691086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档