Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SD卡上xml的XmlPullParser不忽略空格_Android_Xml_Xmlpullparser - Fatal编程技术网

Android SD卡上xml的XmlPullParser不忽略空格

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

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

下面是我如何在resource中为xml创建PullParser(这两种情况下,进一步提取代码都很常见)

这里我在SD卡上创建xml解析器

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);