-->

XmlPullParser例外 - 不能工作了(XmlPullParser exception -

2019-09-18 05:14发布

我有一个基本的方法 - ReadXML的() - 即从资产夹中的XML文件中读取。 当这个运行没有异常抛出。 但是从这个方法中我打电话,试图从XML文件中提取文本,并设置该文本textviews一个doXML()方法。 我不断收到以下错误doXML()方法运行时...所产生的误差

18:19:41.654: W/System.err(329): org.xmlpull.v1.XmlPullParserException: name expected (position:START_TAG @59:57 in java.io.InputStreamReader@44f049c8).

我试图缩短xml文件,看看那里的错误是...基本上如果有四个“试验”每一个标题,作者等前三实际上将加载到textviews ...虽然上面的错误是在logcat中仍然产生......但最后一个不会加载...所以可能有一个与代码逻辑的问题,但不能弄明白。

提前致谢。

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

我认为代码可能复杂得多,它需要......但无法弄清楚,为什么doXML()方法将无法正常运行。

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


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();
        }
    }
文章来源: XmlPullParser exception - can't work it out