Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java StaX:prolog中不允许包含内容_Java_Xml_Stax - Fatal编程技术网

Java StaX:prolog中不允许包含内容

Java StaX:prolog中不允许包含内容,java,xml,stax,Java,Xml,Stax,我有下面的(测试)XML文件和使用StaX的Java代码。我想将这段代码应用于一个大约30GB大但元素相当小的文件,所以我认为StaX是一个不错的选择。我得到以下错误: 线程“main”javax.xml.stream.XMLStreamException中出现异常:[row,col]:[1,1]处的ParseError消息:prolog中不允许包含内容 位于com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLS

我有下面的(测试)XML文件和使用StaX的Java代码。我想将这段代码应用于一个大约30GB大但元素相当小的文件,所以我认为StaX是一个不错的选择。我得到以下错误:

线程“main”javax.xml.stream.XMLStreamException中出现异常:[row,col]:[1,1]处的ParseError消息:prolog中不允许包含内容 位于com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:598) 位于at.tuwien.mucke.util.xml.staxtest.staxtest.main(staxtest.java:18) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:601) 位于com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

}解决了它


我在定义
中添加了编码,并且我必须将其存储在ANSI中(就像Notepad++假定的UTF-8一样)。傻

您是否尝试删除xml声明?(建议使用,但仍然可选)是。我还发现,当文件为空时,我得到了相同的结果。文件本身似乎有问题。。。编码?隐藏的角色?解决了!我添加并必须将其存储在ANSI中(就像记事本++假定的UTF-8。愚蠢!我认为这不是一个好主意。XML默认使用UTF-8是有原因的。我非常确定您的问题源于(不必要)使用UTF-8。删除它(并停止任何应用程序插入UTF-8),您应该会没事的。另请参阅
<?xml version='1.0' encoding='utf-8'?>
<catalog>
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <price>44.95</price>
      <description>An in-depth look at creating applications 
       with XML.</description>
   </book>
   <book id="bk102">
      <author>Ralls, Kim</author>
      <title>Midnight Rain</title>
      <price>5.95</price>
      <description>A former architect battles corporate zombies, 
       an evil sorceress, and her own childhood to become queen 
       of the world.</description>
    </book>
</catalog>
package xml.staxtest;

import java.io.*;
import javax.xml.stream.*;

public class StaXTest {

public static void main(String[] args) throws Exception  {

    XMLInputFactory xif = XMLInputFactory.newInstance();
    XMLStreamReader streamReader = xif.createXMLStreamReader(new FileReader("D:/Data/testFile.xml"));

    while(streamReader.hasNext()){
        int eventType = streamReader.next();

        if(eventType == XMLStreamReader.START_ELEMENT){
            System.out.println(streamReader.getLocalName());
        }

        //... more to come here later ...
    }
}