正 文

使用DOM和XSL来格式化由Java提取的数据


www.7dspace.com  更新日期:2006-1-15 3:34:08  七度空间


SQLMapper

SQLMapper类用一个DataBaseHandler类来完成它的数据库工作,并用一个映射方法将文档对象转换成需要的输出类型。映射方法返回一个字符串,因为原来就假定输出由字符数据构成。另外,也可以使用一个StringBuffer。

SQLMapper需要一个SQL查询字符串、一个输出类型集以及一个用于执行具体工作的DataBaseHandler。它们用set方法来初始化,并用get方法来检索:

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

为了转换成需要的输出,需要在set方法中指定一个XSL样式表。我们创建了一个Transformer对象,它只提供一个私有 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");
 }

Transformer对象需要一个DOMSource对象。为了获得这个对象,我们向Transformer的构造函数传递一个DOM文档的根元素。

最后要由实现者设计自己的XSL样式表。也可选用一些默认样式表,以便将原始数据转换成HTML或者XML。下面是一个泛化的XSL样式表,它能使用所谓的“标识转换”(identity transformation)技术,将生成的数据转换成一个XML文档,并确保输出内容相容于UTF-8标准,并具有良好的可读性。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns: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] 

上一篇:检测你数据库连接的物理状态
下一篇:IE也可玩“超级拖拽”
标题:使用DOM和XSL来格式化由Java提取的数据 作者: 来源:开发者在线
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐