django - XML解析错误:前缀未绑定到命名空间

时间:2015-01-12 03:51:07

标签: python xml django

我收到以下错误 -

XML Parsing Error: prefix not bound to a namespace

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

以下是XML的外观示例 -

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

1 个答案:

答案 0 :(得分:0)

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

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

但是您尚未指出您正在使用 tes 名称空间和 xmlns 属性,因此XML解析器不满意(“前缀不受命名空间的约束”)。删除冒号会将元素(现在命名为 )放回到默认名称空间(没有 prefix:)中,以便解析器满意。

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

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