java - 在序言中,java StaX: 内容不允许

  显示原文与译文双语对照的内容

下面是下面的( 测试) XML文件和使用StaX的Java代码。 我想将这个代码应用到大约 30 GB的文件中,但是我认为sdl是一个很好的选择。 我得到以下错误:

线程"主要" javax.xml. stream.XMLStreamException 中的异常: ParseError位于 [row,col]: [1,1] 消息: Content目录 at com.sun. org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:598) 处的内容不允许使用,位于 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120 ) 处的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 处的sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 处的处


<?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.. .


 }


}



}

时间: 原作者:

解决了 !

我在定义中添加了编码 <?xml version="1.0" encoding="ISO-8859-1"?> 我必须把它储存在 ANSI ( 。NotePad++ 假定 UTF-8 ) 中。 Silly !

原作者:
...