我正在使用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);
答案 0 :(得分:0)
提示:.apk中的XML 资源在构建过程中被编译为二进制格式。这也可能削减“不必要的”空白。要避免这种编译,您可以将XML资源放入assets
文件夹并从那里读取XML。
context.getResources().getXml(resId);
当然不再适用了;您的资产不会分配资源ID。你必须使用原始文件名。
编辑:
getXml()的文档说:
此处返回的XmlPullParser实现有一些限制 功能。特别是,您无法仅更改其输入 高级解析事件可用(因为文档是 在构建时为您预解析,其中涉及合并文本和 剥离评论)。
答案 1 :(得分:0)