Python SAX解析器说XML文件格式不正确

时间:2009-04-02 06:35:38

标签: python xml sax

我从XML文件中删除了一些我认为不必要的标记。现在,当我尝试解析它时,我的SAX解析器抛出一个错误并说我的文件格式不正确。但是,我知道每个开始标记都有一个结束标记。文件的开始标记具有指向XML模式的链接。这会造成麻烦吗?如果是这样,那我该如何解决呢?

编辑:我想我发现了问题。我的角色数据包含“& lt”和“& gt”字符,大概来自html标签。解析后,这些转换为“<”和“>”字符,似乎打扰了SAX解析器。有什么办法可以防止这种情况发生吗?

4 个答案:

答案 0 :(得分:2)

我建议将这些标签重新放入并确保它仍然有效。然后,如果你想把它们取出来,一次一个,直到它破裂。

然而,我质疑将它们拿走的智慧。如果它是您的XML文件,您应该更好地理解它。如果它是第三方XML文件,你真的不应该摆弄它(直到你更好地理解它: - )。

答案 1 :(得分:1)

sax解析器不会向您提供有关 它认为格式不正确的详细信息吗?

您是否尝试将文件加载到XML编辑器并在那里进行检查?其他XML解析器是否接受它?

架构不应该改变XML是否格式正确;它可能会改变它是否有效。有关详细信息,请参阅wikipedia entry for XML well-formedness;有关详细信息,请参阅XML specs:)

编辑:代表“&”在文本中,您应该将其转义为&

所以:

&lt

应该是

&lt

(假设你真的想要&符号,l,t)。

答案 2 :(得分:0)

我会第二次建议尝试使用另一个XML解析器解析它。这应该表明它是错误的文档还是解析器。

此外,实际的错误消息可能很有用。例如,一个相当常见的问题是xml声明(如果使用的话,它是可选的)必须是第一件事 - 甚至在它之前都不允许使用空格。

答案 3 :(得分:0)

如果您没有XML编辑器,可以将其加载到Firefox中。 Firefox会向您显示错误。