gpt4 book ai didi

java - 在 java 中解析时出现 'illegal XML character' 问题

转载 作者:行者123 更新时间:2023-11-30 09:11:15 24 4
gpt4 key购买 nike

我有一个从数据库导出数据的 Java 应用程序;操作一些字段并将其重新加载到另一个数据库中进行测试。

应用程序使用的表中的某些字段最近被加密,此后应用程序在尝试操作导出为 xml 文件的数据时抛出异常。下面是堆栈跟踪

    java.lang.Exception: Error Parsing String
at com.oocl.frm.xmlutil.xmlbeans.XmlBeansUtil.unmarshall(XmlBeansUtil.java:37)
at com.oocl.automation.object.DataSet.<init>(DataSet.java:12)
at com.oocl.automation.process.BaseProcess.process(BaseProcess.java:21)
at com.oocl.automation.TestAutomation.main(TestAutomation.java:30)
Caused by: org.apache.xmlbeans.XmlException: error: Character reference to illegal XML character
org.apache.xmlbeans.impl.piccolo.io.IllegalCharException: Character reference to illegal XML character
at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.parseEncodedChar(PiccoloLexer.java:3131)
at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yylex(PiccoloLexer.java:4899)
at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yylex(Piccolo.java:1290)
at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yyparse(Piccolo.java:1400)
at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.parse(Piccolo.java:714)
at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3435)
at org.apache.xmlbeans.impl.store.Locale.parse(Locale.java:706)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:690)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:677)
at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:208)
at org.apache.xmlbeans.XmlObject$Factory.parse(XmlObject.java:579)
at com.oocl.frm.xmlutil.xmlbeans.XmlBeansUtil.unmarshall(XmlBeansUtil.java:35)
at com.oocl.automation.object.DataSet.<init>(DataSet.java:12)
at com.oocl.automation.process.BaseProcess.process(BaseProcess.java:21)
at com.oocl.automation.TestAutomation.main(TestAutomation.java:30)

at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3467)
at org.apache.xmlbeans.impl.store.Locale.parse(Locale.java:706)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:690)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:677)
at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:208)
at org.apache.xmlbeans.XmlObject$Factory.parse(XmlObject.java:579)
at com.oocl.frm.xmlutil.xmlbeans.XmlBeansUtil.unmarshall(XmlBeansUtil.java:35)
... 3 more
Caused by: org.xml.sax.SAXParseException; systemId: file:; lineNumber: 39313; columnNumber: 657; Character reference to illegal XML character

有什么方法可以让 xml 解析器处理或排除这些非法字符吗?我在任何地方都找不到合适的答案。

非常感谢任何帮助。

我的 xml 版本是我尝试使用 1.1,但效果不佳。抛出异常的字符也是 ; 。

最佳答案

您的问题似乎出在这里(第 39313 行,第 657 列):

Caused by: org.xml.sax.SAXParseException; systemId: file:; lineNumber: 39313; columnNumber: 657; Character reference to illegal XML character

如果你的 XML 中有特殊字符并且你之前已经解析过它,它可能是一个在 XML 1.0 中是非法的字符(但在 XML 1.1 中可能不是非法的 - 检查你的 XML header 中的版本文件,或配置您的解析器以在 XML 1.1 中处理它)。

更新:我看到您的实现使用了 Piccolo 解析器。有一个bug 2007 年报告(但现在可能已经修复)。无论如何,值得检查您使用的是哪个版本以及该错误的当前状态。您可能需要使用不同的解析器或在解析时忽略有问题的字符。

关于java - 在 java 中解析时出现 'illegal XML character' 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22181475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com