簡體   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