正 文

使用DOM和XSL定义Java提取数据的格式


www.7dspace.com  更新日期:2006-1-23 4:39:34  七度空间


为了能详细地访问特定的数据库,可以参考产品的文档。最后你所做的是,调用一个具体的DataBaseHandler,然后进行XSL转换,从而将一个数据库的结果转换成一个有用的输出类型。

SQLMapper

SQLMapper类使用一个DataBaseHandler类完成数据库操作,使用一个映射方法将一个文档对象转换为需要的输出类型。这一映射方法返回一个字符串,因为早先的假设是输出包含字符数据。另外,一个StringBuffer也是合法的。

SQLMapper需要一个SQL 查询字符串,一个输出类型集,以及一个用于执行工作的DataBaseHandler。使用setter方法可以实现它们的初始化,使用getter方法可以检索这些参数:

 if ((getSQL() != null)
 && (getSQL().length() > 0)
 && (getOutputType() != null)
 && (isValidOutputType(getOutputType()))
 && (getDataBaseHandler() != null)){
 Document document = dataBaseHandler.getDocument(getSQL());

为了能转换成为需要的输出,必须在一个setter方法中指定一个XSL样式表。使用一个私有getTransformer方法可以建立一个转换对象,而getTransformer方法包含或者是一个缺省的样式表或者是指定的样式表。如果有必要,还可以使用Java的 TransformerFactory方法来建立一个样式表:

TransformerFactorytransformerfactory = TransformerFactory.newInstance();
transformer = transformerfactory.newTransformer(getStylesheet());

转换过程也只需要几行Java代码:

Transformer transformer = getTransformer();
 StringWritersw = new StringWriter();
 StreamResult result = new StreamResult(sw);
 if (transformer != null) {
 transformer.transform(new DOMSource(document.getDocumentElement()), result);
 output = sw.toString();
 System.err.println("output: " + output);
 }else{
 System.err.println("No Transformer");
 }

剩下的是设计出他或她自己的XSL样式表。可以使用一些缺省的样式表将原始数据转换为HTML或者XML。以下是将生成的数据转换为一个XML文档的通用XSL样式表,其中使用的是恒等交换(identity transformation)技术,并使用UTF-8标准以保证输出的兼容性与可读性:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheetxmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
 <xsl:template match="@*|node()">
 <xsl:copy>
 <xsl:apply-templates select="@*|node()"/>
 </xsl:copy>
 </xsl:template>
</xsl:stylesheet>

5页,页码:[1] [2] [3] [4] [5] 

上一篇:从命令行读取数据
下一篇:全面精通Web 2.0,做互联网潮头人
标题:使用DOM和XSL定义Java提取数据的格式 作者: 来源:开发者在线
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐