Android SD卡上xml的XmlPullParser不忽略空格
我正在使用XmlPullParser从应用程序的嵌入式资源或SD读取相同的XML。问题是,当我从资源中读取xml时,空白被忽略,但SD卡上的xml不会被忽略 下面是我如何在resource中为xml创建PullParser(这两种情况下,进一步提取代码都很常见) 这里我在SD卡上创建xml解析器Android SD卡上xml的XmlPullParser不忽略空格,android,xml,xmlpullparser,Android,Xml,Xmlpullparser,我正在使用XmlPullParser从应用程序的嵌入式资源或SD读取相同的XML。问题是,当我从资源中读取xml时,空白被忽略,但SD卡上的xml不会被忽略 下面是我如何在resource中为xml创建PullParser(这两种情况下,进一步提取代码都很常见) 这里我在SD卡上创建xml解析器 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser parser = factory.new
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
FileReader fileReader = new FileReader(filePath);
parser.setInput(fileReader);
提示:在构建过程中,.apk中的XML资源被编译为二进制格式。这也可能会删除“不必要的”空白。为了避免这种编译,您可以将XML资源放入assets
文件夹中,然后从那里读取XML
context.getResources().getXml(resId)代码>当然不再有效;您的资产将不会分配资源id。您必须使用原始文件名
编辑:
文件说明:
这里返回的XmlPullParser实现有一些限制
功能。特别是,您不能更改其输入,只能
高级解析事件可用(因为文档是
在构建时为您预解析,这涉及到合并文本和
(注释)
我希望它能帮助你::
好的。所以这意味着资源在运行时并没有那个些空格。我更愿意阅读忽略空白,然后将文件放置到资源。所以我的问题是:如何强制XmlPullParser忽略空白、注释?使用nextToken()忽略注释很容易。不过,我在XmlPullParser中找不到任何关于空格collpasing的信息。也许你需要自己去实现它,或者找到另一个具体功能的实现。
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
FileReader fileReader = new FileReader(filePath);
parser.setInput(fileReader);