2013-08-24 2 views
1

Моего XMLisСинтаксического XML с использованием XMLPullParser

<ValidateUser> 

    <userName>admin</userName> 

    <password>admin</password> 
</ValidateUser> 

Моей основной деятельности

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     try{ 
     XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
     factory.setNamespaceAware(true); 
     XmlPullParser parser = factory.newPullParser();      
     InputStream input = getResources().openRawResource(R.raw.temp); 
     parser.setInput(input,null);  
     int eventType = parser.getEventType(); 
     while(eventType != XmlPullParser.END_DOCUMENT){    
      if(eventType == XmlPullParser.START_DOCUMENT){ 
       String prefix = parser.getPrefix(); 
       String name = parser.getName(); 
       Log.i("XML", String.format("prefix=%s,name=%s",prefix,name)); 

      } 

      eventType = parser.next(); 
     } 
    } catch (Exception e) { 
     Log.e("XML","",e); 
    } 

} 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 

Моим POJO класс ..

public class UserClass { 

    public String username; 
    public String password; 
    public String getUsername() { 
     return username; 
    } 
    public void setUsername(String username) { 
     this.username = username; 
    } 
    public String getPassword() { 
     return password; 
    } 
    public void setPassword(String password) { 
     this.password = password; 
    } 

} 

Я до сих пор получаю имя тега и префикс в качестве нуля .... ранее мой XML содержал пространства имен, но nwow я удалил его. xml присутствует в необработанной папке внутри папки res

+0

почему вам нужен POJO для разбора XML – Raghunandan

+0

чека отправил ответ. Я не знаю, зачем нужен класс POJO. но попробуйте ниже, он должен работать – Raghunandan

ответ

1

Я не вижу здесь необходимости класса POJO. Вы не проанализировали теги, и вы не использовали класс POJO где угодно.

Подробнее @

http://developer.android.com/training/basics/network-ops/xml.html

Если вы пытаетесь следовать документы проверить тему umder Разобрать XML

Учитывая, у вас есть XML, как показано ниже

<?xml version="1.0" encoding="utf-8"?> 
<ValidateUser> 
    <userName>admin</userName> 
    <password>admin</password> 
</ValidateUser> 

Тогда

InputStream open = ActivityName.this.getAssets().open("xmlname.xml"); 

Если у вас есть хты в необработанной папке

InputStream open = getResources().openRawResource(R.raw.temp); 

Тогда

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

     xpp.setInput(open, "UTF_8"); 

     boolean insideItem = false; 
     // Returns the type of current event: START_TAG, END_TAG, etc.. 
     int eventType = xpp.getEventType(); 
     while (eventType != XmlPullParser.END_DOCUMENT) { 
      if (eventType == XmlPullParser.START_TAG) { 

       if (xpp.getName().equalsIgnoreCase("ValidateUser")) { 
        insideItem = true; 
       } else if (xpp.getName().equalsIgnoreCase("userName")) { 
        if (insideItem) 
         Log.i("....",xpp.nextText()); // extract the 
                 // userName 
       } else if (xpp.getName().equalsIgnoreCase("password")) { 
        if (insideItem) 
         Log.i("....",xpp.nextText()); // extract the passwrod 

       } 
      } else if (eventType == XmlPullParser.END_TAG 
        && xpp.getName().equalsIgnoreCase("ValidateUser")) { 
       insideItem = false; 
      } 

      eventType = xpp.next(); // move to next element 
     } 

Журнал

08-24 14:45:17.888: I/....(1108): admin 
08-24 14:45:17.888: I/....(1108): admin 
+0

ошибка .. 08-24 20: 36: 32.957: W/System.err (22976): org.xmlpull.v1.XmlPullParserException: Неожиданный токен (позиция: неизвестно @ 1: 2 в java. [email protected]) – user1901079

+0

@ user1901079 он работает, я попробовал его, прежде чем публиковать его здесь. вы должны отредактировать сообщение и опубликовать полную статистику стека. Я даже разместил журнал. отлично работает, если вы делаете это правильно – Raghunandan

+0

см. в редакции – user1901079

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