代码之家  ›  专栏  ›  技术社区  ›  Paresh Mayani jeet

Android-Pull解析器

  •  2
  • Paresh Mayani jeet  · 技术社区  · 14 年前

    我有一个 xml

    <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>
    

    代码:

    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-id , degree-id ),所以 我应该用哪种方法分析 XML格式 ?

    1 回复  |  直到 9 年前
        1
  •  2
  •   Firas Assaad    14 年前

    当您遇到匹配“student”的起始标记时,将一些布尔变量(例如称为insideStudent)设置为true。类似地,当遇到“degree”标记时,将另一个insidegree变量设置为true。当您有结束标记时,将其设置为false(例如,如果您有 </student>

    if(tag_name.equalsIgnoreCase("ID")){
        // Get student ID
        if (insideStudent && !insideDegree) {
              stud_id = parser.nextText().toString();
              Log.i("Id = ", pid);
        }
    } 
    
    推荐文章