2012-06-16 6 views
0

Итак, при просмотре кода не возникает никакого исключения, когда xml читается ... отлично работает.Проблемы с XmlPullParser в Android

public void ReadXML() throws XmlPullParserException, IOException 
    { 

     factory = XmlPullParserFactory.newInstance(); 
     factory.setNamespaceAware(false); 
     xpp = factory.newPullParser(); 

     InputStream raw = getApplicationContext().getAssets().open("trial_info.xml"); 
     xpp.setInput(raw,null); 
    } 
} 

Проблема заключается в методе doXML, где я пытаюсь прочитать текст B/W два тегов ... например.

<trial> 
<title>The Book</title> 
<author></author> 
.... 
</trial> 

Ошибка, которая генерируется 18: 19: 41,654: Вт/System.err (329): org.xmlpull.v1.XmlPullParserException: Название ожидалось (позиция: START_TAG @ 59: 57 в java.io .InputStreamReader @ 44f049c8)

Я думаю, что код, вероятно, сложнее, чем должен быть ... но не может понять ошибку. Спасибо

public void doXML() throws XmlPullParserException, IOException{ 


      int eventType = XmlPullParser.START_TAG; 

      while(eventType != XmlPullParser.END_DOCUMENT) 
      { 
       if(eventType == XmlPullParser.TEXT && xpp.getText().equals(selectedTrial)) 
       { 
        trialTxt = (TextView)findViewById(R.id.TrialAbbrevData); 
        trialTxt.setText(xpp.getText()); 
        Log.d("what is this", xpp.getText()); 

      while(!(eventType == XmlPullParser.END_TAG && xpp.getName().equals("..."))) 
        { 

      if(eventType == XmlPullParser.START_TAG && xpp.getName().equals("trialName")) 
         {  
         eventType = xpp.next(); 
         if(eventType == XmlPullParser.TEXT) 
         { 
          trialTxtDesc = (TextView)findViewById(R.id.TrialNameData); 
          trialTxtDesc.setText(xpp.getText()); 
          Log.d("in loop",xpp.getText()); 
         } 
         } 

     if(eventType == XmlPullParser.START_TAG && xpp.getName().equals("trialDetails")) 
         { 
         eventType = xpp.next(); 
         if(eventType == XmlPullParser.TEXT) 
         { 
          trialTxtConc = (TextView)findViewById(R.id.TrialDescData); 
          trialTxtConc.setText(xpp.getText()); 
         } 
         } 

     if(eventType == XmlPullParser.START_TAG && xpp.getName().equals("trialResults")) 
         { 
         eventType = xpp.next(); 
         if(eventType == XmlPullParser.TEXT) 
         { 
          trialTxtConc = (TextView)findViewById(R.id.TrialResultsData); 
          trialTxtConc.setText(xpp.getText()); 
         } 
         } 

     if(eventType == XmlPullParser.START_TAG && xpp.getName().equals("trialConclusion")) 
         { 
         eventType = xpp.next(); 
         if(eventType == XmlPullParser.TEXT) 
         { 
          trialTxtConc=(TextView)findViewById(R.id.TrialConclusionData); 
          trialTxtConc.setText(xpp.getText()); 
         } 
         } 

     if(eventType == XmlPullParser.START_TAG && xpp.getName().equals("whatItMeans")) 
         { 
          eventType = xpp.next(); 
          if(eventType == XmlPullParser.TEXT) 
          { 
          trialTxtMeans = (TextView)findViewById(R.id.TrialWIMData); 
          trialTxtMeans.setText(xpp.getText()); 
          } 
         } 

         eventType = xpp.next(); 

        }   



      } 
       eventType = xpp.next(); 
     } 
    } 
+0

можете ли вы разместить строку 37-42 вашего XML-файла? –

+0

Я думаю, что это может произойти, если вы ошибаетесь или не используете тот же буквенный футляр в своих тегах. Вы пробовали в кратком тестовом XML-файле? – Lumis

ответ

0

Сообщение об ошибке, кажется, указывает на ошибку в XML-файле, а не на код.

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