当我使用 StAX 获取“非法字符CTRL-CHAR,代码 26”时,我可以获取字符串标签值吗?

问题描述

我有以下代码...

XMLInputFactory xmlInputFactory = XMLInputFactory2.newInstance();
XMLEventReader reader = xmlInputFactory.createXMLEventReader(in);
boolean accountStarted = false;
StringBuffer sb = new StringBuffer();
while (reader.hasNext()) {
    XMLEvent event;
    try {
            event = reader.nextEvent();
    } catch (WstxUnexpectedCharException ex) {
            logger.error("There was a problem with getting the next event.",ex);
            continue;
    }
    ...
}

当我尝试针对相当大的数据集运行此程序时,我最终得到了几条记录,它们都出错了...

com.ctc.wstx.exc.WstxUnexpectedCharException: Illegal character ((CTRL-CHAR,code 26))
 at [row,col {unkNown-source}]: [9,1219456035]
    at com.ctc.wstx.sr.StreamScanner.throwInvalidspace(StreamScanner.java:689) ~[woodstox-core-6.2.0.jar:6.2.0]
    at com.ctc.wstx.sr.BasicStreamReader.readTextPrimary(BasicStreamReader.java:4652) ~[woodstox-core-6.2.0.jar:6.2.0]
    at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2962) ~[woodstox-core-6.2.0.jar:6.2.0]
    at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1122) ~[woodstox-core-6.2.0.jar:6.2.0]
    at com.ctc.wstx.evt.WstxEventReader.nextEvent(WstxEventReader.java:283) ~[woodstox-core-6.2.0.jar:6.2.0]
    at com.....AccountService.parseAccounts(AccountService.java:44) ~[classes/:na]
    at com.....AccountIT.testHttp(AccountIT.java:72) ~[test-classes/:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:567) ~[na:na]
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) ~[junit-4.13.jar:4.13]

现在我的猜测是错误消息是正确的,我从服务中得到了一个错误的字符。但是,我不确定在发生这种情况后如何检查该字符所在的行。这似乎是随机发生的,所以我不能只是调试。

如何获取导致问题的标签文本?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...