2012-06-16 2 views
0

그래서 코드를 검토하면 xml을 읽을 때 예외가 발생하지 않습니다 ... 제대로 작동합니다.안드로이드에서 XmlPullParser 문제가 발생했습니다

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); 
    } 
} 

문제는 내가/이w 태그 ... 예를 들어, b를 텍스트를 읽기 위해 노력하고있어 doXML 방법입니다. 19 : 생성

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

오차는 18 41.654 : java.io 57 : System.err에/W (329) org.xmlpull.v1.XmlPullParserException 이름 기대 (총수 : @ 59 START_TAG .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

XML 파일의 37-42 행을 게시 할 수 있습니까? –

+0

실수로 태그에 같은 대소 문자를 사용하지 않으면이 문제가 발생할 수 있습니다. 먼저 짧은 테스트 XML 파일을 사용해 보셨습니까? – Lumis

답변

0

오류 메시지는 코드가 아니라 XML 파일에서 오류를 나타내는 것 같습니다.

관련 문제