快速业务通道

Java6 WebService人薩極撃廾 - 園殻秘壇利

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
e) {   e.printStackTrace(); } catch(NullPointerException e) {   e.printStackTrace(); }

用JDOM简化XML编程(4)

时间:2011-02-08 IBM Wes Biggs

您可以用清单 2 到清单 7 中显示的方法来操作通过这个过程建立的文档。

JDOM 的另一个实用应用程序将其与 Apache 的 Xalan 产品结合在一起(请参阅 参考资料)。使用上面的汽车示例,我们将为在线汽车经销商建立一个 Web 页面,显示特定汽车的详细信息。首先,假设我们上面建立的文档显示我们准备呈现给用户的汽车的信息。下一步,我们将把这个 JDOM Document 与一个 XSL 样式表结合起来并把 HTML 格式的结果输出到 servlet 的 OutputStream 上以便在用户的浏览器中显示。

在本例中,我们准备使用的 XSL 样式表被称为 car.xsl :

清单 13. 用于将汽车记录转换为 HTML 的 XSL 文档

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">   <xsl:template match="/car">    <html>      <head>       <title><xsl:value-of select="make"/> <xsl:value-of select="model"/>      </head>      <body>       <h1><xsl:value-of select="make"/></h1><br />       <h2><xsl:value-of select="model"/></h2><br />       <table border="0">       <tr><td>VIN:</td><td><xsl:value-of select="@vin"/></td></tr>       <tr><td>Year:</td><td><xsl:value-of select="year"/></td></tr>       <tr><td>Color:</td><td><xsl:value-of select="color"/></td></tr>       </table>      </body>    </html>   </xsl:template> </xsl:stylesheet>

现在我们将把 org.jdom.Document 转换为 DOM Document ,并将其与显示我们的 XSL 和 OutputStream 的文件一起提供给 Xalan, OutputStream 是我们从我们假定的使用 servlet(如清单 14 所示)的应用服务器上获取的。

清单 14. 使用 JDOM 和 Xalan 创建 HTML 文档

TransformerFactory tFactory = TransformerFactory.newInstance(); // Make the input sources for the XML and XSLT documents org.jdom.output.DOMOutputter outputter = new org.jdom.output.DOMOutputter(); org.w3c.dom.Document domDocument = outputter.output(myDocument); javax.xml.transform.Source xmlSource =   new javax.xml.transform.dom.DOMSource(domDocument); StreamSource xsltSource =   new StreamSource(new FileInputStream("/some/directory/car.xsl")); // Make the output result for the finished document using // the HTTPResponse OutputStream StreamResult xmlResult = new StreamResult(response.getOutputStream()); // Get a XSLT transformer Transformer transformer = tFactory.newTransformer(xsltSource); // Do the transform transformer.transform(xmlSource, xmlResult);

在这个示例中,输出是通过 Java servlet 的 HTTPResponse OutputStream 流出。然而,输出流可以象早期的使用 XMLOutputter 的实例一样简单的通过文件流输出

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号