2012-01-20 16 views
0

私は、アプリケーションの埋め込みリソースまたはSDからXmlPullParserを使用して同じXMLを読み取ります。問題は、リソースからxmlを読むとき、空白は無視されますが、sdcardのxmlは無視されないということです。ここでsdcardのxmlのXmlPullParserは空白を無視しません

私はリソース内のXMLのPullParserを作成する方法である(さらに、コードを引っ張っすることは両方のケースに共通です)

XmlPullParser parser = context.getResources().getXml(resId); 

そしてここで私はSDカードに

XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
XmlPullParser parser = factory.newPullParser(); 

FileReader fileReader = new FileReader(filePath); 

parser.setInput(fileReader); 

答えて

0

ヒントXMLのパーサを作成します。 XML リソース.adk内のリソースは、ビルドプロセス中にバイナリ形式にコンパイルされます。これは、 "不要な"空白を取り除くこともあります。このコンパイルを避けるには、XMLリソースをassetsフォルダに入れてそこからXMLを読み込むことができます。

context.getResources().getXml(resId);もちろん、もう動作しません。アセットにはリソースIDが割り当てられません。元のファイル名を使用する必要があります。

編集:

getXml()のドキュメントは言う:

XmlPullParser実装がここで返さ一部の限られた 機能を備えています。特に、その入力を変更することはできず、 の高レベル解析イベントだけが利用可能です(文書の合成時に が事前に解析されていたため、テキストをマージして というコメントを取り除いていました)。

+0

[OK]を::助けて願っています。つまり、リソースは単に実行時に空白を持たないということです。私は空白を無視してファイルを資産に読み込むことをお勧めします。だから私の質問は:どのようにXmlPullParserは、空白を無視するようにコメント? – Solvek

+0

nextToken()を使ってコメントを無視するのは簡単です。しかし、* XmlPullParser *の空白のコレーシングに関する情報は見つかりませんでした。おそらくあなたはそれを自分で実装するか、その特定の機能の別の実装を見つける必要があります。 – JimmyB

関連する問題