当我使用stax2 XMLInputFactory2时,如何转换输入流?

时间:2013-05-13 05:34:44

标签: java stax woodstox

使用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;解析时Ё自动化??? 我可以创建中间文件,其中所有文件都被替换,然后解析它,但这不是一个好主意

1 个答案:

答案 0 :(得分:0)

错误消息表明您的XML格式不正确:其编码已损坏。 听起来它包含值为0x1的Unicode字符的实体引用。 这不适用于XML 1.0;虽然它对XML 1.1来说是合法的。 但也许XML文档在其xml声明中没有声明“version ='1.0'”?