擅长:python、mysql、java
<p>您提供的示例数据表明了一个问题,而您提供的问题和异常则暗示了另一个问题。您是将多个XML文档连接在一起,每个文档都有自己的XML声明,还是有一个包含多个顶级元素的XML片段?在</p>
<p>如果是前者,那么解决方案将包括将输入流分解为多个流,并分别对每个流进行解析。正如一条评论所说,这并不一定意味着实现一个XML解析器。只要输入不包含包含未转义XML声明的CDATA部分,就可以在字符串中搜索XML声明,而不必解析其中的任何其他内容。您可以编写一个类似文件的对象,该对象从底层流返回字符,直到到达XML声明为止,然后将其包装在生成器函数中,该函数将一直返回流,直到达到EOF为止。这不是小事,但也不是非常困难。在</p>
<p>如果有一个包含多个顶级元素的XML片段,只需将它们包装为一个XML元素并解析整个过程。在</p>
<p>当然,与大多数涉及错误XML输入的问题一样,最简单的解决方案可能只是修复产生错误输入的问题。在</p>