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

时间:2011-05-29 07:35:55

标签: java xml sax

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

2 个答案:

答案 0 :(得分:3)

不,我不相信SAX一定会允许您创建该文件的 eaxct 副本。

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

<foo>3 > 1</foo>

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

在这两种情况下,我相信你会得到一个包含字符“3&gt; 1”的字符串,而没有任何迹象表明>是否被转义。

您可能会创建原始文件的 XML等效副本,但这不是您提出的问题,因此我不会详细介绍。

答案 1 :(得分:1)

您可以使用David Megginson's公共域XMLWriter(SAX过滤器)。它可用here,下载包含源代码和示例。

(NB输出将与输入完全匹配,在一般情况下创建精确的词法匹配是不可能的,因为符合条件的XML处理器会丢失输入的一些词法特征,例如内部空格标签)。