0

我正在使用 XmlPullParser 从应用程序的嵌入式资源或 SD 读取相同的 XML。问题是,当我从资源中读取 xml 时,空格会被忽略,但 sdcard 上的 xml 不会被忽略。

这是我在资源中为 xml 创建 PullParser 的方法(进一步拉取代码对于这两种情况都很常见)

XmlPullParser parser = context.getResources().getXml(resId);

在这里我为 sdcard 上的 xml 创建解析器

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();

FileReader fileReader = new FileReader(filePath);

parser.setInput(fileReader);
4

2 回答 2

0

我希望它可以帮助你::

http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html#nextToken%28%29

于 2012-01-20T10:20:31.267 回答
0

提示:.apk 中的 XML资源在构建过程中被编译为二进制格式。这也可能会修剪掉“不必要的”空格。为了避免这种编译,您可以将您的 XML 资源放入该assets文件夹并从那里读取您的 XML。

context.getResources().getXml(resId);那么当然不会再工作了;您的资产不会分配资源 ID。您必须使用原始文件名。

编辑:

getXml()的文档说:

此处返回的 XmlPullParser 实现具有一些有限的功能。特别是,您无法更改其输入,并且只有高级解析事件可用(因为文档在构建时已为您预先解析,这涉及合并文本和剥离注释)。

于 2012-01-20T09:21:43.607 回答