SAXParseException:在文档的元素内容中找到了无效的XML字符(Unicode:0x13)

时间:2016-03-17 09:27:35

标签: java xml spring apache web-services

当代码尝试解析XML数据时,我收到以下错误消息。

org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 2056552; An invalid XML character (Unicode: 0x13) was found in the element content of the document.
    a  t  com.sun.org.apache.xer ces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:19
    a  t  com.sun.org.apache.xer ces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
    a  t  com.sun.org.apache.xer ces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:441)
    a  t  com.sun.org.apache.xer ces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:36
    a  t  com.sun.org.apache.xer ces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1436)
    a  t  com.sun.org.apache.xer ces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2927)
    a  t  com.sun.org.apache.xer ces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
    a  t  com.sun.org.apache.xer ces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    a  t  com.sun.org.apache.xer ces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:84
    a  t  com.sun.org.apache.xer ces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
    a  t  com.sun.org.apache.xer ces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    a  t  com.sun.org.apache.xer ces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    a  t  com.sun.org.apache.xer ces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:64
    a  t  com.sun.org.apache.xer ces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:332)
    a  t  javax.xml.parsers.SAXP arser.parse(SAXParser.java:195)
    a  t  com.ssl.htms.externald ata.service.PushedDatex2Service.receiveDatex2Data(PushedDatex2Service.java:187)
    a  t  com.ssl.htms.web.contr oller.datex.ReceiveDatex2Controller.invoke(ReceiveDatex2Controller.java:67)
    a  t  com.ssl.htms.web.contr oller.datex.ReceiveDatex2Controller.invoke(ReceiveDatex2Controller.java:51)
    a  t  com.sun.xml.ws.api.ser ver.InstanceResolver$1.invokeProvider(InstanceResolver.java:256)
    a  t  com.sun.xml.ws.server. InvokerTube$2.invokeProvider(InvokerTube.java:156)
    a  t  com.sun.xml.ws.server. provider.SyncProviderInvokerTube.processRequest(SyncProviderInvokerTube.java:7
    a  t  com.sun.xml.ws.api.pip e.Fiber.__doRun(Fiber.java:629)
    a  t  com.sun.xml.ws.api.pip e.Fiber._doRun(Fiber.java:58
    a  t  com.sun.xml.ws.api.pip e.Fiber.doRun(Fiber.java:573)
    a  t  com.sun.xml.ws.api.pip e.Fiber.runSync(Fiber.java:470)
    a  t  com.sun.xml.ws.server. WSEndpointImpl$2.process(WSEndpointImpl.java:243)
    a  t  com.sun.xml.ws.transpo rt.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:471)
    a  t  com.sun.xml.ws.transpo rt.http.HttpAdapter.handle(HttpAdapter.java:244)
    a  t  com.sun.xml.ws.transpo rt.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)
    a  t  com.sun.xml.ws.transpo rt.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129)
    a  t  com.sun.xml.ws.transpo rt.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160)
    a  t  com.sun.xml.ws.transpo rt.http.servlet.WSServlet.doPost(WSServlet.java:75)
    a  t  javax.servlet.http.Htt pServlet.service(HttpServlet.java:64
    a  t  javax.servlet.http.Htt pServlet.service(HttpServlet.java:729)
    a  t  org.apache.catalina.co re.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    a  t  org.apache.catalina.co re.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    a  t  org.apache.tomcat.webs ocket.server.WsFilter.doFilter(WsFilter.java:52)
    a  t  org.apache.catalina.co re.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    a  t  org.apache.catalina.co re.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    a  t  com.ssl.htms.externald ata.logging.LoggingGZIP2WayFilter.doFilter(LoggingGZIP2WayFilter.java:132)
    a  t  org.apache.catalina.co re.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    a  t  org.apache.catalina.co re.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    a  t  com.ssl.htms.web.core. SecurityFilter.doFilter(SecurityFilter.java:73)
    a  t  org.apache.catalina.co re.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    a  t  org.apache.catalina.co re.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    a  t  com.ssl.htms.logging.M DCFilter.doFilter(MDCFilter.java:82)
    a  t  org.apache.catalina.co re.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    a  t  org.apache.catalina.co re.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    a  t  org.springframework.se curity.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:186)
    a  t  org.springframework.se curity.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
    a  t  org.springframework.we b.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
    a  t  org.springframework.we b.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
    a  t  org.apache.catalina.co re.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    a  t  org.apache.catalina.co re.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    a  t  org.apache.catalina.co re.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    a  t  org.apache.catalina.co re.StandardContextValve.invoke(StandardContextValve.java:106)
    a  t  org.apache.catalina.au thenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    a  t  org.apache.catalina.co re.StandardHostValve.invoke(StandardHostValve.java:141)
    a  t  org.apache.catalina.va lves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    a  t  org.apache.catalina.va lves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    a  t  org.apache.catalina.co re.StandardEngineValve.invoke(StandardEngineValve.java:8
    a  t  org.apache.catalina.co nnector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    a  t  org.apache.coyote.http 11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
    a  t  org.apache.coyote.Abst ractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    a  t  org.apache.tomcat.util .net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    a  t  org.apache.tomcat.util .net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    a  t  java.util.concurrent.T hreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    a  t  java.util.concurrent.T hreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    a  t  org.apache.tomcat.util .threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    a  t  java.lang.Thread.run(T hread.java:745)

我试图找到unicode字符并更新它。我做了以下代码:

byte[] encoded = Files.readAllBytes(Paths.get(path));
String utf8tweet = new String(encoded, StandardCharsets.UTF_8);
Pattern unicodeOutliers = Pattern.compile("[^\\x00-\\x7F]", Pattern.UNICODE_CASE | Pattern.CANON_EQ | Pattern.CASE_INSENSITIVE);
Matcher unicodeOutlierMatcher = unicodeOutliers.matcher(utf8tweet);
utf8tweet = unicodeOutlierMatcher.replaceAll(" ");
return utf8tweet;

在进行单元测试时添加此代码SAXParser正在解析xml文件正常工作但是当我在Application中添加相同的代码时它失败并抛出SAXParser异常。我一直在尝试不同的东西,但它失败了。 XML文件非常大,否则我也会添加它。任何帮助/建议将不胜感激。感谢。

0 个答案:

没有答案