JAXP 全部内容,第 2 部分:使用 Sun 的 XML 处理工具包来转换 XML
2010-04-06 00:00:00 来源:WEB开发网获得工厂
转换如此简单,以至于有点微不足道。首先,需要设置输入和输出接收器。将 Source 包装在输入 XML 文档和 XSL 样式表中。然后,创建一个接收器,以写入转换后的结果——然后将其包装在 Result 中。
其次,需要使用静态 newInstance() 方法创建 TransformerFactory。清单 3 展示了所有详细信息:
清单 3. 创建新 TransformerFactory 实例
try {
// Set up input documents
Source inputXML = new StreamSource(
new File("phonebook.xml"));
Source inputXSL = new StreamSource(
new File("phonebook.xsl"));
// Set up output sink
Result outputXHTML = new StreamResult(
new File("output.html"));
// Setup a factory for transforms
TransformerFactory factory = TransformerFactory.newInstance();
} catch (TransformerConfigurationException e) {
System.out.println("The underlying XSL processor " +
"does not support the requested features.");
} catch (TransformerException e) {
System.out.println("Error occurred obtaining " +
"XSL processor.");
}
这一步没有太多内容。异常处理与代码本身所用时间一样多。对于 SAX 和 DOM 工厂类,一个异常处理已请求的但不受支持的特性,另一个异常处理实例化错误。
恒等转换
TransformerFactory.newTransformer() 的一个版本不接受任何参数(因此无 XSL 样式表)。这允许您执行恒等转换,它简单地将输入 XML 从一种形式(比如流)转换为另一种形式(比如 DOM 树)。您以一种格式提供 XML 作为 Source,然后以另一种格式将其推出作为 Result。应该记住这个有用的技巧。
更多精彩
赞助商链接