XmlPullParser
XmlPullParserとは
http://xmlpull.org/が作成している「仕様」である模様。 実装には様々な種類があり、J2MEのような小さなものからJ2EEの重量級対応のものまであるそうな。
つまり、Androidにビルトインされたものが唯一の実装ではないので(実際、それはAndroid環境以外では使用できない。Eclipse ADT上でさえも)、 適当な実装をとってくればEclipse上でもテストは実行可能のようである。
AndroidのXml.newPullParser()のバグ
XmlPullParserを取得するには、以下の二つの方法がある。
- parser = Xml.newPullParser();
parser = XmlPullParserFactory.newInstance().newPullParser();
しかし、前者には強烈なバグがある(ようだ)。このバグを回避する方法は今のところ不明。
XMLにエンコーディングが指定されていても、それを取得することができないのである。
<?xml version="1.0" encoding="EUC-JP"?> <rss version="2.0"> <channel> <title>テストデータ漢字</title> </channel> </rss>
などというxmlを読み込ませると、前者ではこれがEUC-JPであることを認識できず、エラーが発生してしまう。 後者であればうまくいく。
なぜ同じようなものが二種類用意されているのかは一切不明だが、ただ現在のXmlPullParserのドキュメントには後者の例しか記載されていない。