【发布时间】:2011-08-19 03:18:55
【问题描述】:
这是我的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)
我完全糊涂了。
感谢您的任何想法。
-西里尔
【问题讨论】:
-
在
builder.parse()之前检查File.exists(),以确保它在您认为的位置。 -
我尝试运行这段代码,它对我有用。
-
我一直认为这是一个编码问题(声明的utf-8 xml文件编码为非utf-8),但我的测试并没有证明。
标签: java xml xml-parsing sax