7

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

{ XML Parsing Error: junk after document element Line Number 3, Column 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

4 回答 4

11

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

于 2013-03-08T04:53:03.213 回答
8

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

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

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

于 2013-03-07T19:48:15.133 回答
0

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

于 2013-03-07T19:46:48.070 回答
-1

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

于 2013-03-07T19:49:50.200 回答