2011-09-14 122 views
4

我试图解析现有的xhtml文件,将额外的正文内容添加到该文件中。我使用下面的代码:获取文件过早结束异常

首先我从Jsoup阅读的身体和我试图把它的XhtmlFile

Document doc = Jsoup.parse(readFile, "UTF-8"); 
      Elements content = doc.getElementsByTag("body"); 

      try { 
       Document document=null; 
       DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
       // Create the builder and parse the file 
       document = (Document)factory.newDocumentBuilder().parse(finalFile); 
       //document.getElementsByTagName("body")append(content.toString());    
       //document=parserXML(finalFile);     
       document.getElementsByTag("body").append(content.toString()); 

      } catch (SAXException e) { 
       System.out.println("SAXException>>>>>>"); 
       e.printStackTrace(); 
      } catch (ParserConfigurationException e) { 
       System.out.println("in parser configuration Exception block>>>>>>"); 
       e.printStackTrace(); 
      } 

但我收到以下异常:

[Fatal Error] ResultParsedFile.html:1:1: Premature end of file. 
org.xml.sax.SAXParseException: Premature end of file. 
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source) 
    at javax.xml.parsers.DocumentBuilder.parse(Unknown Source) 
    at com.converter.typeconverter.EmailTypeConverter.readHTML(EmailTypeConverter.java:101) 
    at com.converter.typeconverter.EmailTypeConverter.callTika(EmailTypeConverter.java:64) 
    at com.converter.master.ApplicationMain.main(ApplicationMain.java:64) 

普莱舍帮助我解决这个问题...提前

谢谢...

+1

听起来像finalFile可能不是一个有效的XML文件... –

+0

如果它是XHTML,你应该能够用一个普通的XML解析器解析它。 Jsoup并不是特别针对破解!X!HTML。 – bmargulies

+0

@Jon表示我可能不会使用DOM或SAX解析器来解析,但是从jsoup我得到我需要的html文件的正文内容,我只是想将该消息注入到xhtml(finalfile)的正文中。你的时间。在这方面的任何指针.. – ramesh

回答

1

该消息表明您的XML文件格式不正确。通常当我收到这条消息时,我有一个没有匹配结束标签的开始标签。我想你也会在一个空文件中得到这个。

+0

我使用xhtml文件,其中我想添加一些身体部位。但具有适当的开始和结束标签的骨架xhtml页面可用。 – ramesh

2

如果在文件的第一个位置(1:1表示)出现此错误,则表示该文件为空。

也许您在源文件关闭之前开始阅读文件?

如果您使用输入流(这里不是这种情况),当您重新使用已用于到达文件末尾的流时,可能会发生这种情况。您需要从输入文件创建一个新流,以便从文件的开头重置它。

0

我最近经历过这样的错误,事实证明我的.hbm.xml文件中的一个正在生成为空,正在从应用程序上下文XML这是指HBM文件

0

1.XML是产生错误不可读。 2.为了纠正xml,只有选项是拖放到电子表格中,错误将会更加清晰地突出显示。在做出修正后xml最终会被加载到电子表格中,然后成功加载的xml将不会面临任何解析问题