The XML
<foo>text</foo>
Parser code copied from http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html
XmlPullParserFactory pullParserFactory;
try {
pullParserFactory = XmlPullParserFactory.newInstance();
pullParserFactory.setNamespaceAware(true);
mParser = pullParserFactory.newPullParser();
InputStream inputStream = getResources().openRawResource(R.xml.foo);
mParser.setInput(inputStream, null);
//mParser.setInput(new StringReader("<foo>text</foo>"));
int eventType = mParser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
System.out.println("Start document");
} else if(eventType == XmlPullParser.START_TAG) {
System.out.println("Start tag "+mParser.getName());
} else if(eventType == XmlPullParser.END_TAG) {
System.out.println("End tag "+mParser.getName());
} else if(eventType == XmlPullParser.TEXT) {
System.out.println("Text "+mParser.getText());
}
eventType = mParser.next();
}
System.out.println("End document");
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
It generates the error below on the first call to next(), but only when using setInput(InputStream, encoding). The example uses setInput(StringReader) which works fine when you use that version of setInput;
06-07 12:35:30.992: W/System.err(30950): org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT ���������������4������...@1:149 in java.io.InputStreamReader@425ceab0)