我正在尝试使用DocumentBuilder的parse方法解析xml,该方法将URI作为参数。为此,我创建一个表示URI的String对象,然后调用parse方法传递String对象作为参数。
parse方法调用工作正常,返回一个新的DOM对象。但是,当我尝试打印返回的DOM对象时,它会显示:org.xml.sax.SAXParseException:根元素后面的文档中的标记必须格式正确。用于解析xml的代码片段如下所示:
String sURL="http://host:port/myapp/serv?arg=abc&arg2=def";
DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
doc = dBuilder.parse(sURL);
当我手动尝试在浏览器中访问URL时,它工作正常,即返回xml。
url返回的xml格式正确。
如上所示调用时的parse方法不会抛出任何异常,但是DOM对象会告诉org.xml.sax.SAXParseException
以下是异常的堆栈跟踪:
org.xml.sax.SAXParseException:根元素后面的文档中的标记必须格式正确。 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl $ TrailingMiscDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 在com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(未知来源) at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source) 在javax.xml.parsers.DocumentBuilder.parse(未知来源) 在DocBuilderTest.getDocumentFromURL(DocBuilderTest.java:103) 在DocBuilderTest.main(DocBuilderTest.java:54)
对此的任何帮助都将受到高度赞赏。
感谢。