打印本文 打印本文 关闭窗口 关闭窗口
JAXP: Coding for Parser & Transformer Independence
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1985  更新时间:2006/7/27  文章录入:mintao  责任编辑:mintao
nstance方法实例化一个TransformerFactory对象,它用特定的查找顺序来决定使用哪一个转换器实现。和SAX和DOM工厂一样,可以对TransformerFactory对象进行一些配置,来影响Transformer对象的创建。用newTransformer方法创建好Transformer对象后,就可以调用transform方法,它将一个Source对象(DOMSource,SAXSource, StreamSource)转换为Result对象(DOMResult, SAXResult, StreamResult)。
抽象层
前面已经提到过,用某种特定的查找顺序来决定使用哪个SAX, DOM 和XSLT的实现,下面的API定义了查找顺序:
 .使用javax.xml.parsers.SAXParserFactory(或javax.xml.parsers.DocumentBuilderFactory)系统属性(system property)。
 .使用JRE目录中“lib/jaxp.properties”属性文件定义的javax.xml.parsers.SAXParserFactory属性的值,这个值必须包括了实现类的全名。
 .使用Service API,它可以在运行系统中使用的JAR文件中包括的META-INF/services/javax.xml.parsers.SAXParserFactory文件中查找类名。
 .使用平台默认的SAXParserFactory实例。
使用DOM时,你只需将javax.xml.parsers.SAXParserFactory替换为javax.xml.parsers.DocumentBuilderFactory,类似,使用XSLT时,你用javax.xml.transform.TransformerFactory替换。
总结
如你所见,你写的代码只需与抽象层打交道。这保证了厂商的无关性,你可以快速和轻松的替换你的解析器的实现。解析XML文档时,Java开发者可以根据他们的需要设置两个选项。SAX是利用回调过程的事件驱动模型,而DOM是一种游历树的模型,它在操作数据前必须将XML文档解析成树,XSLT则可以将XML文档转换为另一种XML文档或者其他格式,如HTML。总之,JAXP非常的强大,灵活,它提供的简单可用的工具可以满足大多数Java开发者处理XML文档时的需要。

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口