如何修改xml解析器异常“<! - ?xml ...? - > prolog必须在文档开头”

时间:2010-08-23 05:44:16

标签: java xml jdom

我使用follow代码来获取XML文档(通过Java中的JDOM):

SAXBuilder builder = new SAXBuilder();
Document doc= builder.build(new URL("http://www.sasatuan.com/api/api.php"));

我得到一个例外:

org.jdom.input.JDOMParseException: Error in building:
 http://www.sasatuan.com/api/api.php:1: <?xml ... ?> occurs after content.  The
<?xml ... ?> prolog must be at the document start.: http://www.sasatuan.com/api/
api.php:1: <?xml ... ?> occurs after content.  The <?xml ... ?> prolog must be a
t the document start.
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:473)
        ...

我在IE中输入了这个网址http://www.sasatuan.com/api/api.php,没关系,但在firefox或chrome中,也是一样的错误。

这个xml标题不在文档的开头,所以jdom无法读取它。

我认为在构建之前修剪xml内容可以修改这个问题,我想知道如何做到这一点。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

您是否有其他同样需要阅读的XML文件?如果没有,我会亲自尝试与网站的所有者联系。这个XML根本就是无效的 - 修复它可能是一件容易的事,这可以帮助每个人而不仅仅是你。

如果这不具吸引力,那么将内容作为字符串下载,在内存中修剪它,然后加载它可能是最容易的。你可能试图跳过输入流的相关位,但这更可能是繁琐的。