2014-04-29 1 views
0
<root> 
    <element> <!-- When this is encountered... --> 
     <element>text</element> 
     <element>text</element> 
     <element> 
      <element>text</element> 
     </element> 
    <element> 
    <element> <!-- ...skip to here. --> 
     <element>text</element> 
     <element>text</element> 
     <element> 
      <element>text</element> 
     </element> 
    <element> 
</root> 

내부 태그는 외부 태그와 동일한 이름을 가질 수 있습니다. 이 경우에는 모두 element이라고합니다.XmlPullParser - 일치하는 END_TAG을 건너 뛰는 방법?

기본적으로, 내가 주어진 START_TAG 인 경우 해당 END_TAG으로 건너 뛰고 동일한 깊이에서 다음 START_TAG의 구문 분석을 계속하고 싶습니다.

답변

2

Android 개발자 웹 사이트에서 스 니펫을 발견했습니다.

private void skip(XmlPullParser parser) throws XmlPullParserException, IOException { 
    if (parser.getEventType() != XmlPullParser.START_TAG) { 
     throw new IllegalStateException(); 
    } 
    int depth = 1; 
    while (depth != 0) { 
     switch (parser.next()) { 
     case XmlPullParser.END_TAG: 
      depth--; 
      break; 
     case XmlPullParser.START_TAG: 
      depth++; 
      break; 
     } 
    } 
} 
+0

출처 링크 : https://developer.android.com/training/basics/network-ops/xml.html#skip – noamtm