Locked History Actions

Android/XmlPullParser

XmlPullParser

XmlPullParserとは

http://xmlpull.org/が作成している「仕様」である模様。 実装には様々な種類があり、J2MEのような小さなものからJ2EEの重量級対応のものまであるそうな。

つまり、Androidにビルトインされたものが唯一の実装ではないので(実際、それはAndroid環境以外では使用できない。Eclipse ADT上でさえも)、 適当な実装をとってくればEclipse上でもテストは実行可能のようである。

AndroidのXml.newPullParser()のバグ

XmlPullParserを取得するには、以下の二つの方法がある。

しかし、前者には強烈なバグがある(ようだ)。このバグを回避する方法は今のところ不明。

XMLにエンコーディングが指定されていても、それを取得することができないのである。

<?xml version="1.0" encoding="EUC-JP"?>
<rss version="2.0">
<channel>
<title>テストデータ漢字</title>
</channel>
</rss>

などというxmlを読み込ませると、前者ではこれがEUC-JPであることを認識できず、エラーが発生してしまう。 後者であればうまくいく。

なぜ同じようなものが二種類用意されているのかは一切不明だが、ただ現在のXmlPullParserのドキュメントには後者の例しか記載されていない。