我收到此错误:XML解析错误:文档元素后的垃圾

时间:2013-03-07 19:44:26

标签: php xml xml-parsing

我正在尝试使用php,javascript,html,css实现商店定位器。第一步是以xml格式进行数据库查询解析,但是我收到的错误对我来说没有意义。 它说:

  

{XML解析错误:文档元素行号3之后的垃圾,列   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>

4 个答案:

答案 0 :(得分:8)

这里的问题是XML内容。该错误表明XML元素之外存在字符。如

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

如果您需要进一步的帮助,请发布正在解析的XML。

答案 1 :(得分:5)

如果没有单个根元素,那不是真正的XML。 尝试将所有这些元素包装在一个根目录中。 解析器抱怨的“垃圾”是第一个之后的多个根, 这是唯一认为有效的。

答案 2 :(得分:0)

浏览器不期望XML主体之后可能存在内容。确保浏览器仅接收XML而不包含任何其他内容,包括空格或换行符。

答案 3 :(得分:-1)

尝试使用eiter CDATA从数据库中包装您的内容,因为文本中可能存在垃圾。 另一个解决方案是创建一个函数来替换无法解析的字符