【问题标题】:django - XML Parsing Error: prefix not bound to a namespacedjango - XML 解析错误:前缀未绑定到命名空间
【发布时间】:2015-01-12 03:51:06
【问题描述】:

我收到以下错误 -

XML Parsing Error: prefix not bound to a namespace

尝试在 django 中生成 XML 时,其中的键包含冒号。如果我从键中删除 : 则没有错误。不幸的是 : 需要在那里,所以我需要了解 XML Parser 为什么在 : 上失败以及如何纠正它。我假设我需要创建一个自定义解析器。

这是 XML 外观的示例 -

<entry>
    <id></id>
    <name></name>
    <source></source>
    <tes:variable>
        <tes:type></tes:type>
    </tes:variable>
</entry>

【问题讨论】:

    标签: python xml django


    【解决方案1】:

    我不熟悉 django,但您似乎想要一个名称中带有“:”(冒号)的标签。

    在 XML 中,冒号对元素名称有效,但它们指定了一个 命名空间。因此 XML 解析器认为您指的是 tes 命名空间中名为 variable 的元素。

    但是您没有表明您正在使用带有 xmlns 属性的 tes 命名空间,因此 XML 解析器不满意(“前缀未绑定到命名空间”)。删除冒号会将元素(现在名为 )放回默认命名空间(无 prefix:),这样解析器就可以满足了。

    我认为最简单的“解决方案”就是拥有一个 xmlns 属性(xmlns="namespaceURI ") 在定义 tes 命名空间的 元素中。那么XML解析器就应该满足了。

    W3Schools 有一些关于命名空间的信息: XML Namespaces

    【讨论】:

      猜你喜欢
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-09
      • 1970-01-01
      相关资源
      最近更新 更多