我从 XML 文件中删除了一些我认为不必要的标签。现在,当我尝试解析它时,我的 SAX 解析器会抛出一个错误,并说我的文件格式不正确。但是,我知道每个开始标签都有一个结束标签。文件的开始标签有一个指向 XML 模式的链接。这会造成麻烦吗?如果是这样,那我该如何解决?
编辑:我想我找到了问题所在。我的字符数据包含“<”和“>”字符,大概来自 html 标签。在被解析之后,这些被转换为“<”和“>”字符,这似乎打扰了 SAX 解析器。有什么办法可以防止这种情况发生吗?
我建议将这些标签放回原处并确保它仍然有效。然后,如果你想把它们拿出来,一次一个地做,直到它坏掉。
但是,我质疑将它们取出来是否明智。如果它是您的 XML 文件,您应该更好地理解它。如果它是第三方 XML 文件,你真的不应该摆弄它(除非你更好地理解它:-)。
sax 解析器是否没有提供有关它认为格式不正确的详细信息?
您是否尝试将文件加载到 XML 编辑器中并在那里进行检查?其他 XML 解析器是否接受它?
无论 XML 格式是否正确,架构都不应更改;它可能会改变它是否有效。请参阅wikipedia entry for XML well-formedness了解更多信息,或查看XML 规范了解更多详细信息 :)
编辑:要在文本中表示“&”,您应该将其转义为&
所以:
<
应该
&lt
(假设你真的想要&符号,l,t)。
我第二次建议尝试使用另一个 XML 解析器来解析它。这应该表明它是错误的文档还是解析器。
此外,实际的错误消息可能很有用。例如,一个相当普遍的问题是 xml 声明(如果使用,它是可选的)必须是第一件事——在它之前甚至不允许有空格。
如果您没有 XML 编辑器,您可以将其加载到 Firefox 中。Firefox 会显示错误。