我从XML文件中去掉了一些我认为不必要的标记。现在,当我试图解析它时,我的SAX解析器抛出一个错误,并指出我的文件不是格式良好的。但是,我知道每个开始标记都有一个结束标记。文件的开始标记有一个指向XML模式的链接。这会不会是造成麻烦的原因?如果是这样,那么我该如何修复它呢?
编辑:我想我找到问题所在了。我的字符数据包含"<“和">”字符,可能来自html标记。解析后,这些字符被转换为"<“和">”字符,这似乎会困扰SAX解析器。有什么方法可以防止这种情况发生吗?
发布于 2009-04-02 06:38:48
sax解析器是否没有给出它认为格式不好的地方的详细信息?
您是否尝试过将文件加载到XML编辑器中并在那里进行检查?其他XML解析器是否接受它?
无论XML是否格式良好,模式都不应该改变;它很可能会改变它是否有效。有关更多信息,请参阅wikipedia entry for XML well-formedness,或参阅XML specs了解更多细节:)
编辑:要在文本中表示"&“,应将其转义为&
所以:
<应该是
&lt(假设您确实想要与符号,l,t)。
发布于 2009-04-02 06:42:51
我建议把这些标签放回去,并确保它仍然有效。然后,如果你想把它们拿出来,一次做一个,直到它坏掉。
然而,我质疑去掉它们是否明智。如果它是XML文件,那么您应该更好地理解它。如果它是第三方XML文件,那么您真的不应该摆弄它(直到您更好地理解它:-)。
发布于 2009-04-02 18:32:54
我的第二个建议是尝试使用另一个XML解析器解析它。这应该表明是文档还是解析器出了问题。
此外,实际的错误消息可能会很有用。例如,一个相当常见的问题是xml声明(如果使用,它是可选的)必须是第一件事--它前面甚至不允许有空格。
https://stackoverflow.com/questions/708531
复制相似问题