xml プル パーサーを使用して xml ドキュメントを解析しようとしています。xxml 宣言を含む xml ドキュメントの処理を開始するまで、すべてが正常に機能していました。
宣言があると、次のエラーが発生します。
02-08 15:37:16.960: WARN/System.err(9721): org.xmlpull.v1.XmlPullParserException: PI は xml で開始しないでください (position:unknown @1:5 in java.io.InputStreamReader@ 47ec2770)
ドキュメントから宣言を取り出すと、すべてが機能します。別のパーサーに切り替えるには遅すぎるので、それを機能させる必要があります!
私のパーサーコードは次のようになります
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(false);
// factory.setFeature(XmlPullParser.FEATURE_PROCESS_DOCDECL, true);
XmlPullParser xpp = factory.newPullParser();
// get a reference to the file.
File file = new File(Environment.getExternalStorageDirectory() + "/"
+ Constants.SD_CARD_DIR + "/" + Constants.XMLPATH);
// create an input stream to be read by the stream reader.
FileInputStream fis = new FileInputStream(file);
// set the input for the parser using an InputStreamReader
xpp.setInput(new InputStreamReader(fis));
int eventType = xpp.getEventType();
// /
while (eventType != XmlPullParser.END_DOCUMENT) {...}