繁体   English   中英

具有空xml文档的Jdom2解析器

[英]Jdom2 parser with empty xml document

我正在尝试使用jdom2解析xml文档的字符串表示形式。 我期望xml字符串

<?xml version=\"1.0\" encoding=\"UTF-8\"?>

成为有效的xml文档。 但是,当我运行以下简单代码段时:

import java.io.IOException;
import java.io.StringReader;
import org.jdom2.*;

public class Main {
    public static void main(String []args){
        SAXBuilder parser = new SAXBuilder();
        String data = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
        try { 
            Document doc = parser.build(new StringReader(data));
        } catch (JDOMException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

我收到错误:

org.jdom2.input.JDOMParseException: Error on line 1: Premature end of file.
    at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:232)
    at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:303)
    at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1196)
    at testpack.Main.main(Main.java:32)

xml规范是否不允许没有根元素的xml有效负载? 如果不是,我应该如何检查xml文档是否为空?

编辑:我也注意到, 文件中Jdom2的文档()类规定,

文档必须具有根元素,因此,如果在添加根元素之前访问此文档,则该文档的格式将不正确,并且访问器方法将引发IllegalStateException。

可能只是Jdom2不支持空的xml文档?

经过进一步调查,我注意到w3定义的xml文档规范指定应遵循“格式良好的xml文档”

它包含一个或多个元素。

表示零元素不是一种选择。 输入的xml字符串是格式错误的xml字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM