StAX:空XML文件上的START_DOCUMENT

问题描述

我试图了解有关START_DOCUMENT事件的StAX设计。典型的while循环为:

XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
try {
  XMLEventReader xmlEventReader = xmlInputFactory.createXMLEventReader(new FileInputStream(fileName));
  while(xmlEventReader.hasNext()) {
    XMLEvent xmlEvent = xmlEventReader.nextEvent();
    switch( xmlEvent.getEventType() ) {
    [...]

使用此循环无法将空的XML文件与仅具有xml版本的XML文件区分开。例如:

% test -s empty.xml || echo empty      
empty
% cat start.xml 
<?xml version="1.0" encoding="UTF-8"?>

以上两个文件产生完全相同的StAX事件系列(一个START_DOCUMENT)。此行为记录在某处吗?为什么在文件为空的情况下有人会想要START_DOCUMENT事件?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)