2

我正在尝试从使用XOM作为 XML 库的 android 应用程序中读取 xml 文件。我正在尝试这个:

Builder parser = new Builder();
Document doc = parser.build(context.openFileInput(XML_FILE_LOCATION));

但是我nu.xom.ParsingException: Premature end of file.什至在文件为空的情况下。

我需要解析一个非常简单的XML文件,并且我已经准备好使用另一个库而不是 XOM,所以如果有更好的库,请告诉我。或者只是使用 XOM 解决问题。

如果有帮助,我正在使用xerces来获取解析器。

- - - 编辑 - - -

PS:这样做的目的不是解析空文件,该文件恰好在第一次运行时为空,显示此错误。

4

2 回答 2

2

如果您将这篇文章读到最后,这似乎与xerces它是一个空文件这一事实有关,并且他们没有达成解决方案xerces

所以我处理的问题如下:

Document doc = null;
try {
    Builder parser = new Builder();
    doc = parser.build(context.openFileInput(XML_FILE_LOCATION));
}catch (ParsingException ex) { //other catch blocks are required for other exceptions.
   //fails to open the file with a parsing error.
   //I create a new root element and a new document.
   //I fill them with xml data (else where in the code) and save them.
    Element root = new Element("root");
    doc = new Document(root);       
}

然后我可以做任何我想做的事doc。并且您可以添加额外的检查以确保原因确实是一个空文件(例如检查文件大小,如 sam 对该问题的评论之一所示)。

于 2012-12-31T00:51:26.940 回答
2

空文件不是格式良好的 XML 文档。抛出 ParsingException 是正确的做法。

于 2013-04-24T09:46:04.770 回答