使用stax2解析大的xml文件(500 - 800Mb):
XMLStreamReader2 reader = (XMLStreamReader2) xmlif2.createXMLStreamReader(fileName, new FileInputStream(fileName));
将其转换为特定的csv并有下一个问题。一些文本节点包含“”序列。在输出文件中,它必须用西里尔字母“Ё”替换。但是当解析器发现序列“”时,它会抛出异常:
[com.ctc.wstx.exc.WstxLazyException] com.ctc.wstx.exc.WstxParsingException:非法字符实体: 扩展字符([row,col,system-id]
处的代码0x1)
在stax中我有同样的例外。
我可以为xml流阅读器设置一些transforation并替换& #x1;解析时Ё自动化??? 我可以创建中间文件,其中所有文件都被替换,然后解析它,但这不是一个好主意
答案 0 :(得分:0)
错误消息表明您的XML格式不正确:其编码已损坏。 听起来它包含值为0x1的Unicode字符的实体引用。 这不适用于XML 1.0;虽然它对XML 1.1来说是合法的。 但也许XML文档在其xml声明中没有声明“version ='1.0'”?