AndroidアプリでXMLパースをXmlPullParser使って行おうとしたのですが、XMLファイルにDOCTYPE宣言がある状態で、next()メソッドを呼び出すとXmlPullParserExceptionが発生してしまいました。
06-07 09:52:48.747 9489-9867/xxx E/xxx? org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT @399:1 in java.io.InputStreamReader@418b8ea8) at org.kxml2.io.KXmlParser.next(KXmlParser.java:426) at org.kxml2.io.KXmlParser.next(KXmlParser.java:310) at android.os.AsyncTask$2.call(AsyncTask.java:288) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841)
XMLの構文上は正しいのになぜかエラーになってしまいいろいろ試行錯誤していたのですが、結局、FEATURE_PROCESS_DOCDECLをtrueにしてnextToken()メソッドを使うようにしたら正常に動作するようになりました。