我有一项服务,以xml格式提供一些汽车信息。
<?xml version="1.0" encoding='UTF-8'?>
<cars>
<car>
<id>5</id>
<name>qwer</name>
</car>
<car>
<id>6</id>
<name>qwert</name>
</car>
</cars>
现在我遇到的问题是我的
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse(xml);
有时抛出一个SAXException(有时它工作得很好,但是当我重新启动服务器(仍处于开发阶段)时,我有时会继续使用它)因为SAXException:意外的文档结束。
但是当我在那里放置一个缓冲区读取器以查看它正在接收的内容时,我将该值复制到xml文档中,然后在firefox中打开它,即它看起来很好。
答案 0 :(得分:2)
XML文档必须只有一个根元素。
你应该有一个<cars>
元素(或类似的)包裹你的<car>
组。
错误消息没有意义 - 因为在文档结尾之后你有意想不到的内容。
答案 1 :(得分:1)
您得到此异常,因为您输入的示例是有效的XML片段(因此可由Firefox读取),但是XML文档无效,因为它具有多个根节点,XML规则禁止这样做。
尝试为每个<car>
标记创建一个XML文档,SAX就可以了。