Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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 当我';我在使用stax2 XMLInputFactory2吗?_Java_Stax_Woodstox - Fatal编程技术网

Java 当我';我在使用stax2 XMLInputFactory2吗?

Java 当我';我在使用stax2 XMLInputFactory2吗?,java,stax,woodstox,Java,Stax,Woodstox,使用stax2解析大型xml文件(500-800Mb),如下所示: XMLStreamReader2 reader = (XMLStreamReader2) xmlif2.createXMLStreamReader(fileName, new FileInputStream(fileName)); 将其转换为特定的csv并遇到下一个问题。某些文本节点包含“;”序列。在输出文件中,必须将其替换为西里尔字母“Ё”。但当解析器发现序列“;”时,抛出异常: [com.ctc.wstx.

使用stax2解析大型xml文件(500-800Mb),如下所示:

XMLStreamReader2 reader = (XMLStreamReader2) xmlif2.createXMLStreamReader(fileName, new FileInputStream(fileName));
将其转换为特定的csv并遇到下一个问题。某些文本节点包含“;”序列。在输出文件中,必须将其替换为西里尔字母“Ё”。但当解析器发现序列“;”时,抛出异常:

[com.ctc.wstx.exc.WstxLazyException] com.ctc.wstx.exc.WstxParsingException:非法字符实体: 扩展字符(代码0x1位于[行、列、系统id]

在斯塔克斯,我也有同样的例外

我可以为xml流读取器设置一些转换,并在解析时将;替换为Ёautomative???
我可以创建中间文件,在其中替换所有文件,然后解析它,但这不是一个好主意。

错误消息表明您的XML格式不正确:要么它的编码被破坏。 听起来好像它包含一个Unicode字符的实体引用,值为0x1。 这对于XML1.0是不允许的;尽管对于XML1.1是合法的。
但也许XML文档没有在其XML声明中声明“version='1.0'”?

XML文件有下一个标题
如果更改XML版本解决了问题,那么在解析之前这样做会比替换所有;Sequences更好。对了,XML 1.0不允许字符实体引用控制字符(0x1-0x1F,lf/cr/tab除外)。所以尝试将1.0更改为1.1,应该避免出现问题。