Php 我得到了这个错误:XML解析错误:文档元素之后的垃圾

Php 我得到了这个错误:XML解析错误:文档元素之后的垃圾,php,xml,xml-parsing,Php,Xml,Xml Parsing,我正在尝试使用php、javascript、html和css实现一个商店定位器。第一步是以xml格式解析数据库查询,但我遇到了一个对我来说毫无意义的错误。 它说: {XML解析错误:文档元素第3行第1列后出现垃圾邮件 9: --------^} 奇怪的是,当我在第3行按enter键将错误推到第4行时,错误上下文并没有改变,似乎错误和代码并没有任何关系 XML: <parks storeName="Devonshire Park" streetNumber="1250" la

我正在尝试使用php、javascript、html和css实现一个商店定位器。第一步是以xml格式解析数据库查询,但我遇到了一个对我来说毫无意义的错误。 它说:

{XML解析错误:文档元素第3行第1列后出现垃圾邮件 9: --------^}

奇怪的是,当我在第3行按enter键将错误推到第4行时,错误上下文并没有改变,似乎错误和代码并没有任何关系

XML:

<parks storeName="Devonshire Park" streetNumber="1250" lat="49.245020" lng="-123.13364" distance="0.3444475521254494"></parks>
<parks storeName="Shaughnessy Park" streetNumber="1300" lat="49.255715" lng="-123.13506" distance="0.4027917748443472"></parks>
<parks storeName="Braemar Park" streetNumber="895" lat="49.247615" lng="-123.12363" distance="0.46626204419188244"></parks>
<parks storeName="Douglas Park" streetNumber="801" lat="49.252493" lng="-123.12222" distance="0.5285969452661102"></parks>
<parks storeName="Angus Park" streetNumber="3600" lat="49.253932" lng="-123.14381" distance="0.5463666448497029"></parks>
<parks storeName="Heather Park" streetNumber="702" lat="49.254765" lng="-123.12110" distance="0.6412282952671712"></parks>
<parks storeName="Granville Park" streetNumber="3001" lat="49.258105" lng="-123.14239" distance="0.6940531309415132"></parks>
<parks storeName="VanDusen Botanical Gardens" streetNumber="5251" lat="49.239181" lng="-123.13129" distance="0.7530451429246237"></parks>
<parks storeName="Quilchena Park" streetNumber="4590" lat="49.243690" lng="-123.14886" distance="0.8262659935827044"></parks>
<parks storeName="Oak Meadows Park" streetNumber="899" lat="49.238445" lng="-123.12579" distance="0.867320490203991"></parks>
<parks storeName="Arbutus Village Park" streetNumber="4202" lat="49.249783" lng="-123.15525" distance="0.9901511999872843"></parks>
<parks storeName="Choklit Park" streetNumber="" lat="49.265482" lng="-123.12890" distance="1.0880158966243803"></parks>
<parks storeName="Prince Edward Park" streetNumber="3773" lat="49.244397" lng="-123.15642" distance="1.1124111373800636"></parks>
<parks storeName="Prince of Wales Park" streetNumber="4780" lat="49.244397" lng="-123.15642" distance="1.1124111373800636"></parks>
<parks storeName="Queen Elizabeth Park" streetNumber="4600" lat="49.240978" lng="-123.11202" distance="1.1445698543044514"></parks>
<parks storeName="Willow Park" streetNumber="802" lat="49.264868" lng="-123.12203" distance="1.14618861456822"></parks>
<parks storeName="Hillcrest Park" streetNumber="4501" lat="49.244734" lng="-123.10841" distance="1.1801942385262174"></parks>
<parks storeName="Ravine Park" streetNumber="2159" lat="49.240902" lng="-123.15593" distance="1.1988469137694855"></parks>
<parks storeName="Granville Loop Park" streetNumber="1435" lat="49.267284" lng="-123.13754" distance="1.2094922772420964"></parks>
<parks storeName="Charleson Park" streetNumber="999" lat="49.266995" lng="-123.12420" distance="1.2439538809012058"></parks>


在XML正文之后可能有浏览器不希望看到的内容。确保浏览器只接收XML而不接收其他内容,包括空格或换行符。

这里的问题是XML内容。错误是指出XML元素外有字符。比如

<document>
  <element>
  </element>
</document>
<junk></junk>  <-- after the root element


我们尝试使用eiter CDATA包装数据库中的内容,因为文本中可能有垃圾。
另一个解决方案是创建一个函数,如果没有单个根元素,该函数将替换无法解析的字符,而这些字符不是真正的XML。 尝试将所有这些元素包装在一个根中。 解析器抱怨的“垃圾”是第一个根之后的多个根,
这是唯一一个它认为有效的

您可以将xml文件的内容添加到问题中吗?请在第9列第3行及其周围包含有问题的xml文件,或者至少包含一个片段。可能有很多东西,其中一个可能很快就浮现在脑海中的是,可能是您正在使用的转换空白/返回/空的东西,以便将类型安全插入到数据库中。因此,如果没有XML和一些代码上下文,我不知道我们是否能帮上什么忙。@user1836957:我看到您在格式化XML时遇到了问题(四个空格的缩进和预格式化的代码)。我现在编辑了你的问题,希望能对你有所帮助。看起来卢克·怀亚特的回答是对的。我的网站上有这个问题,问题是我定义了两个