我可以使用SAX解析器或Transformer实现XML从一种格式到另一种格式的转换吗?如果是这样,那么确切的区别是什么?
编辑::我的意思是我使用SAXTransformerFactory创建的变换器
答案 0 :(得分:2)
SAX解析器允许您在Java中解析 XML文档。它将为每个元素,字符序列等回调您,并使用它可以构造一个表示部分/全部XML的对象树,或执行其他一些功能。
存在其他类型的解析器。 DOM解析器将为您提供XML文档的基于树的对象表示。这是每个解析器类型的优点/缺点(DOM通常被描述为更多内存密集型,但提供完整的XML模型,而SAX是轻量级的,但您被解析器本身回调,无法导航任何模型的XML)
我有点模糊。您的XML Transformer,但我认为您的意思是XSLT。这是一个样式表转换,并在更高层次上运行,将转换(样式表)应用于输入XML并提供输出(通常但不限于XML)
编辑:发表评论后,请参阅this article:
最后,您可能希望将xml文档写入字符串或 一个文件,这可以用来自的Transformer对象来完成 变压器厂
答案 1 :(得分: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。