org.xml.sax.SAXParseException:文件过早结束

时间:2011-05-05 07:19:31

标签: java xml xml-parsing sax

这是我的xml文件

<?xml version="1.0" encoding="utf-8"?>
<settings></settings>

我的方法如下所示

public  void load( String fileName ) {
...
Document xmlDocument = null;
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try
{
  builder = dbFactory.newDocumentBuilder();
  xmlDocument = builder.parse(new File (fileName));
}
catch( Exception e )
{
  Log.write(e);
}
...
}

当我调用我的方法时,我收到以下内容:

[task] org.xml.sax.SAXParseException: Premature end of file.
[task] at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:249)
[task] at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
[task] at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:208)
[task] at MyClass.load(MyClass.java:49)

我完全糊涂了。

感谢任何想法。

-Cyril

2 个答案:

答案 0 :(得分:2)

struts.xml文件中可能存在

问题。 struts.xml文件中必须包含以下行。

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
必须在sturts.xml文件中的<package>标记内写入

<struts>标记。

答案 1 :(得分:0)

确保内容类型content-type:text/xml; charset=utf-8