解析XML时出现“在前导中不允许内容”的错误提示。

36 浏览
0 Comments

解析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




x-T x x-T x x x x x@gmail.com
XML内容继续...

\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代码来修复这个问题?

0