解析XML时出现“在前导中不允许内容”的错误提示。
解析XML时出现“在前导中不允许内容”的错误提示。
我正在使用以下Java代码解析XML:\n
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(true); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); XPath xPath = XPathFactory.newInstance().newXPath(); SimpleErrorHandler simpleErrorHandlerObj = new SimpleErrorHandler(RequestDoc); builder.setErrorHandler(simpleErrorHandlerObj); InputSource is = new InputSource(new StringReader(CXMLHandlerObj.incoming_cxml)); domdoc = builder.parse(is);
\nXML无法解析并出现错误。\n下面是我遇到错误的XML摘录:\n
XML内容继续... x-T x x-T x x x x x@gmail.com
\n在解析XML时,我遇到以下错误:\n
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
\n看起来XML中有空白字符。\n我已经在Java代码中通过以下代码清除了空白字符:\n
content = content.replaceAll(">[\\s\r\n]*<", "><");
\n当我从原始来源Sap Ariba(网站门户)发送此XML时,会出现错误。当我下载XML,复制它的空白字符,并通过Postman工具发送时,它可以解析。\n可能XML前面也有一个空格,但我不确定。\n我已经与Sap Ariba联系,但是否有办法通过Java代码来修复这个问题?