Python SAX解析器说XML文件不好

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

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


萨克斯解析器不会给你提供关于它认为它不健全的细节吗?

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

模式不应该改变XML是否格式良好; 它可能会改变它是否有效。 请参阅维基百科条目以了解更多的XML格式,或更多详细信息,请参阅XML规范:)

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

所以:

&lt

应该

&amp;lt

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


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

但是,我质疑把它们带出去的智慧。 如果它是你的XML文件,你应该更好地理解它。 如果它是一个第三方XML文件,你真的不应该摆弄它(直到你更好地理解它:-)。


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

此外,实际的错误消息可能会有用。 例如,一个相当普遍的问题是,xml声明(如果使用了一个,它是可选的)必须是第一件事 - 即使在它之前也不允许空白。

链接地址: http://www.djcxy.com/p/34907.html

上一篇: Python SAX parser says XML file is not well

下一篇: Stripping Invalid XML characters in Java