在使用JDOM解析XML的时候,有时候会出现下面两中异常。org.jdom.input.JDOMParseException: Error on line -1: Premature end of file.
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:466)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:809)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:788)org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.
        at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1162)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:455)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:809)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:788)但是我的XML能正常打开,也没有语法上的错误。
不知道是怎么回事,请高手指点。

解决方案 »

  1.   

    问题1,你是不是有先用write输出到文件,然后再载入时出错?如果是这种情况,一般是忘记flush()了。那么在write之后,加上flush即可。
    问题2,是格式问题,如果打开看时无格式问题,可用IE打开看看,以确定是否编码正确。
      

  2.   

    谢谢楼上的回答。
    但是你说的问题好像都不存在。
    上面的两个异常是在
    org.jdom.input.SAXBuilder builder=new org.jdom.input.SAXBuilder();
    Document doc=builder.build(f);
    加载的时候就出现了。之前输出也是用
    XMLOutputter XMLOut=new XMLOutputter(format);
    XMLOut.output(doc,new FileOutputStream(f)); 
    相信JDOM已经flush了而且我的XML能用IE正常打开。