在Java中,是否可以创建使用SAX读取的XML文件的精确副本?本质上使用方法startElement,characters,endElement来读取原始文件。虽然我感谢所有人愿意提供帮助,但请不要偏离这个原始问题或答案,建议采用不同的方法来阅读文件;例如,我对DOM不感兴趣。谢谢!
答案 0 :(得分:3)
不,我不相信SAX一定会允许您创建该文件的 eaxct 副本。
例如,我不相信你能够区分:
<foo>3 > 1</foo>
和
<foo>3 > 1</foo>
在这两种情况下,我相信你会得到一个包含字符“3&gt; 1”的字符串,而没有任何迹象表明>
是否被转义。
您可能会创建原始文件的 XML等效副本,但这不是您提出的问题,因此我不会详细介绍。
答案 1 :(得分:1)
您可以使用David Megginson's公共域XMLWriter(SAX过滤器)。它可用here,下载包含源代码和示例。
(NB输出将与输入完全匹配,在一般情况下创建精确的词法匹配是不可能的,因为符合条件的XML处理器会丢失输入的一些词法特征,例如内部空格标签)。