1

文字列の配列を XML にシリアル化します。私の出力は次のとおりです。

<MyArray>
    <anyType xsi:type="xsd:string">testString</anyType>
    <anyType xsi:type="xsd:string"></anyType> // here is empty string, and I want it in output array
</MyArray>

これを XMLPullParser で配列に逆シリアル化しようとすると、1 つの文字列のみで配列が作成されます。2 番目の文字列の XmlPullParser の関数 next() が TEXT イベントなしで START_TAG と END_TAG のみを返すのはなぜですか? この xml から空の文字列を取得する回避策はありますか?

4

1 に答える 1

2

http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html、より具体的にはnextText()メソッドのドキュメントによると、次のようになります。

現在のイベントが START_TAG の場合、次の要素が TEXT の場合は要素のコンテンツが返されます。次のイベントが END_TAG の場合は空の文字列が返されます。それ以外の場合は例外がスローされます。この関数を正常に呼び出すと、パーサーは END_TAG に配置されます。この関数の動機は、空の要素と空でないコンテンツを持つ要素の両方を一貫して解析できるようにすることです。

彼らが提供するサンプルコードはうまく機能し、現在、コードで次の行の何かを使用しています:

mPullParser.nextTag();
mPullParser.require(XmlPullParser.START_TAG, null, tag);
final String text = mPullParser.nextText();
mPullParser.require(XmlPullParser.END_TAG, null, tag);

空の文字列であるかどうかに関係なく、これは問題なく機能します。org.xmlpull.v1.XmlPullParser図書館を利用していますか?

于 2012-02-29T11:55:26.537 に答える