4

我可以使用 SAX 解析器或转换器实现 XML 从一种格式到另一种格式的转换吗?如果是这样,那么确切的区别是什么?

编辑:: 我的意思是我使用 SAXTransformerFactory 创建的变压器

4

2 回答 2

2

SAX 解析器允许您在 Java 中解析XML 文档。它会为每个元素、字符序列等回调您,使用它您可以构建一个表示部分/全部 XML 的对象树,或执行一些其他功能。

存在其他类型的解析器。DOM 解析器将为您提供 XML 文档的基于树的对象表示。每种解析器类型都有优点/缺点(DOM 通常被描述为内存密集型,但提供了 XML 的完整模型,而 SAX 是轻量级的,但您会被解析器本身回调并且无法导航任何模型XML 的)

我有点模糊wrt。您的 XML 转换器,但我假设您的意思是XSLT。这是一个样式表转换,在更高级别上运行,将转换(样式表)应用于输入 XML 并给出输出(通常但不限于 XML)

编辑:根据您的评论,请参阅这篇文章

最后,您可能希望将 xml 文档写入字符串或文件,这可以使用来自转换器工厂的 Transformer 对象来完成

于 2012-09-05T15:01:20.780 回答
0

相比:

何时使用 SAX http ://docs.oracle.com/javase/tutorial/jaxp/sax/when.html 和

何时使用 DOM: http ://docs.oracle.com/javase/tutorial/jaxp/dom/when.html

另请参阅:http ://docs.oracle.com/javaee/1.4/tutorial/doc/JAXPXSLT4.html

我相信 SAX 将用于基于事件的 XML 读/写,而 Transformer 将用于操作已经解析的 XML。

于 2012-09-05T15:09:58.607 回答