ムッシューの日記

2人の子供とのお出かけネタから趣味の釣りネタなど

DOCTYPEでXmlPullParserExceptionが発生した時の対処


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()メソッドを使うようにしたら正常に動作するようになりました。

 


次へ 投稿

前へ 投稿

© 2017 ムッシューの日記

テーマの著者 Anders Norén