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 将其反序列化回数组时,它仅使用一个字符串创建数组。为什么第二个字符串上的 XmlPullParser 函数 next() 只返回 START_TAG 和 END_TAG,而没有 TEXT 事件?有什么解决方法可以从此 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 回答