Итак, при просмотре кода не возникает никакого исключения, когда 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();
}
}
можете ли вы разместить строку 37-42 вашего XML-файла? –
Я думаю, что это может произойти, если вы ошибаетесь или не используете тот же буквенный футляр в своих тегах. Вы пробовали в кратком тестовом XML-файле? – Lumis