可以将XmlPullParser配置为不忽略空格吗?

时间:2012-08-17 19:36:19

标签: java android android-xml

我正在使用XmlPullParser来解析一些自定义XML。我像这样打开XML文件......

XmlPullParser xpp = activity.getResources().getXml(R.xml.myXML);

后来我读了以下XML节点

<L>  ####</L>

使用代码

String str = "";
if( xpp.next() == XmlPullParser.TEXT )
    str = xpp.getText();
return str;

而不是返回

'  ####'

我得到了

' ####'

(为了清楚起见,我添加了单引号。)注意缺少前导空格。

看来getText正在剥离领先的空间?当XML不包含前导空格时,我的代码按预期工作。

我找不到XMLPullParser的任何属性,它允许我告诉它保留所有空格。我也无法更改XML以在带有前导空格的文本周围添加双引号。

1 个答案:

答案 0 :(得分:1)

XmlPullParser.next()和XmlPullParser.getText()可以以不可预测的方式返回多个部分的内容。在你的情况下,也许第一个空格字符作为第一个片段返回并且如果它在xpp.next()上迭代而没有连接片段,则由程序静默删除。该算法应该更多:

String str = "";
while (xpp.next() == XmlPullParser.TEXT) {
    str += xpp.getText();
}
return str;