【发布时间】:2012-08-14 06:37:10
【问题描述】:
我正在使用 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 以在带有前导空格的文本周围添加双引号。
【问题讨论】:
-
据我所知,它会这样做,因为在 XML 中,双空格被视为一个空格(而不仅仅是前导)。我不相信
XmlPullParser有办法解决这个问题。 -
你读过this吗?
-
Eric - 只有当双空格领先时,才会删除其中一个空格。如果双空格在字符串中间,则保留。
-
gontard - 是的,阅读您的链接。尝试了其他一些方法,但都没有改变任何东西。
-
你是在解析推箱子的关卡吗? :) 我遇到了同样的问题并找到了可能的解决方案here。 Quoting the text 在我的情况下是最可以接受的,因为它不会在等宽文本编辑器中破坏级别,保留空格。作为替代方案,您始终可以使用原始 Java 来解析 XML。
标签: java android android-xml