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] |