2015-06-08 2 views
1

Я использую следующий код для синтаксического анализа XML, он был отсчитываются от официальных Docs для Android:Как получить конкретное значение узла в XML-парсера

XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
factory.setNamespaceAware(true); 
XmlPullParser xpp = factory.newPullParser(); 

xpp.setInput(new StringReader(response)); 
int eventType = xpp.getEventType(); 
while (eventType != XmlPullParser.END_DOCUMENT) { 
    if (eventType == XmlPullParser.START_DOCUMENT) { 
     System.out.println("Start document"); 
    } else if (eventType == XmlPullParser.START_TAG) { 
     System.out.println("Start tag " + xpp.getName()); 
    } else if (eventType == XmlPullParser.END_TAG) { 
     System.out.println("End tag " + xpp.getName()); 
    } else if (eventType == XmlPullParser.TEXT) { 
    // System.out.println("Text " + xpp.getText()); 



    } 
    eventType = xpp.next(); 
} 
System.out.println("End document"); 

На консоли:

06-08 11:13:25.557 24857-24883/ex.com.receipts I/System.out﹕ Start document 
06-08 11:13:25.557 24857-24883/ex.com.receipts I/System.out﹕ Start tag exareceipts 
06-08 11:13:25.557 24857-24883/ex.com.receipts I/System.out﹕ Start tag email 
06-08 11:13:25.557 24857-24883/ex.com.receipts I/System.out﹕ End tag email 
06-08 11:13:25.557 24857-24883/ex.com.receipts I/System.out﹕ Start tag authentication_status 
06-08 11:13:25.557 24857-24883/ex.com.receipts I/System.out﹕ End tag authentication_status 
06-08 11:13:25.557 24857-24883/ex.com.receipts I/System.out﹕ End tag exareceipts 
06-08 11:13:25.557 24857-24883/ex.com.receipts I/System.out﹕ End document 

Однако я заинтересован только в узле с именем authentication_status для этого я знаю, что нужно проверить:

if(xpp.getName().equalsIgnoreCase("authentication_status")){ 
    //logic for getting node value 
} 

Я действительно смущен и не уверен - где разместить этот код.

+0

Пожалуйста, напишите комментарий к downvote? – User3

+1

^зад, это вопрос на основе DOM. – User3

ответ

1

Итак, вот как это сделать:

XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
          factory.setNamespaceAware(true); 
          XmlPullParser xpp = factory.newPullParser(); 

          String tagName = null; 

          xpp.setInput(new StringReader(response)); 
          int eventType = xpp.getEventType(); 
          while (eventType != XmlPullParser.END_DOCUMENT) { 
           if (eventType == XmlPullParser.START_DOCUMENT) { 
            System.out.println("Start document"); 
           } else if (eventType == XmlPullParser.START_TAG) { 
            System.out.println("Start tag " + xpp.getName()); 
            tagName = xpp.getName(); 
           } else if (eventType == XmlPullParser.END_TAG) { 
            System.out.println("End tag " + xpp.getName()); 
           } else if (eventType == XmlPullParser.TEXT) { 

            if(tagName.equalsIgnoreCase("authentication_status")){ 
             System.out.println("Text tagName " + xpp.getText()); 
            } 




           } 
           eventType = xpp.next(); 
          } 
          System.out.println("End document"); 

 Смежные вопросы

  • Нет связанных вопросов^_^