Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
== Xml.newPullParser()のバグ == |
== XmlPullParserとは == [[http://xmlpull.org/]]が作成している「仕様」である模様。 実装には様々な種類があり、J2MEのような小さなものからJ2EEの重量級対応のものまであるそうな。 つまり、Androidにビルトインされたものが唯一の実装ではないので(実際、それはAndroid環境以外では使用できない。Eclipse ADT上でさえも)、 適当な実装をとってくればEclipse上でもテストは実行可能のようである。 == AndroidのXml.newPullParser()のバグ == |
Line 25: | Line 33: |
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のドキュメントには後者の例しか記載されていない。