当代码尝试解析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文件非常大,否则我也会添加它。任何帮助/建议将不胜感激。感谢。