我正在使用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,以在前导空格周围的文本周围添加双引号。
最佳答案
XmlPullParser.next()和XmlPullParser.getText()会以一种无法预测的方式分几部分返回内容。在您的情况下,如果程序在xpp.next()上进行迭代而不将其串联在一起,则可能是第一个空格char作为第一段返回并被程序无提示地删除。该算法应更多是:
String str = "";
while (xpp.next() == XmlPullParser.TEXT) {
str += xpp.getText();
}
return str;
关于java - 可以将XmlPullParser配置为不忽略空格吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12012122/