我的Google云端硬盘上托管了一个XML文件。它有一些我的Android应用程序运行所需的数据。所以,我决定测试是否可以从文件中获取数据并进行测试SAXParser
。但是,我得到SAXParseException
:
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
at testing.TestSAX.processFeed(TestSAX.java:54)
at testing.TestSAX.main(TestSAX.java:40)
虽然这个相同的代码适用于RSS提要,但它会崩溃为Google驱动器文件 以下是我打开流的方式:
try{
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
InputStream stream = new URL(url).openStream();
Reader r = new InputStreamReader(stream,"UTF-8");
InputSource source = new InputSource(stream);
source.setEncoding("UTF-8");
parser.parse(source, this);
}catch(Exception e){
errorOccured = true;
e.printStackTrace();
}
我该如何解决?
答案 0 :(得分:1)
您的InputStream存在一些问题,请仔细阅读:http://www.danielschneller.com/2008/01/saxparseexception-1-1-premature-end-of.html