我正在尝试解析现有的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)
请帮助我解决这个问题...
提前致谢...
答案 0 :(得分:2)
如果在文件的第一个位置(1:1表示)出现此错误,则表示该文件为空。
也许你在源关闭它之前就开始阅读文件了?
如果您使用输入流(此处不是这种情况),当您重新使用已用于到达文件末尾的流时,可能会发生这种情况。您需要从输入文件创建一个新流,以便从文件的开头重置它。
答案 1 :(得分:1)
该消息表明您的XML文件格式错误。通常当我收到此消息时,我有一个没有匹配结束标记的开始标记。我想你也会在一个空文件上得到它。
答案 2 :(得分:0)
我最近遇到过这个错误,原来我的一个.hbm.xml文件被生成为空,错误是从应用程序上下文xml生成的,它指的是hbm文件
答案 3 :(得分:0)
1.xml不可读。 2.要纠正xml,只有选项是拖放到电子表格中,错误会突出显示更明确。在建议修正后,xml最终会被加载到电子表格中。然后成功加载的xml将不会遇到任何解析问题< / p>