【问题标题】:I am getting this error : XML Parsing Error: junk after document element [closed]我收到此错误:XML Parsing Error: junk after document element [关闭]
【发布时间】:2013-02-23 04:31:42
【问题描述】:

我正在尝试使用 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>

【问题讨论】:

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

标签: php xml xml-parsing


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 我的网站上有这个问题问题是我定义了两个
        猜你喜欢
        • 2018-12-02
        • 1970-01-01
        • 1970-01-01
        • 2012-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-13
        相关资源
        最近更新 更多