创建使用SAX读取的XML文件的精确副本



在Java中,是否可以创建用SAX读取的XML文件的精确副本?本质上使用startElement、characters、endElement等方法读取原始文件。虽然我感谢所有愿意提供帮助的人,但请不要偏离最初的问题或答案,提出不同的阅读文件的方法;例如,我对DOM不感兴趣。谢谢

不,我认为SAX不一定允许您创建文件的eaxct副本。

例如,我不相信你能区分:

<foo>3 > 1</foo>

<foo>3 &gt; 1</foo>

在这两种情况下,我相信您都会得到一个包含字符"3>1"的字符串,而不会指示>是否已转义。

您可能会创建一个XML等效的原始文件副本,但这不是您的问题,所以我不会详细介绍。

您可以使用David Megginson的公共域XMLWriter(SAX过滤器)。它在这里提供,下载有源代码和示例。

(注意:输出将是与输入的精确逻辑匹配,在一般情况下,创建精确的词法匹配是不可能的,因为一致的XML处理器会丢失输入的一些词法特征,例如标签中的空白)。

最新更新