XML+XSLT

要实现的一个功能就是在JAVA的服务器端将数据库中的数据取出然后写入XML中,然后XML+XSLT相结合再转换为HTML代码片段。

基本的思路如下:
第一步,就是首先将数据和XML绑定。可以使用JAXB将数据写入XML。但是此处并不打算这么做。因为XML结构不复杂。所以决定还是通过程序将数据与XML绑定。本例子假设数据与XML绑定已经完成。
第二步,将XSL解析设置放到内存中缓存起来等待使用。
第三步,使用javax.XML.transform将XML与XSLT结合最后返回HTML代码片段。
代码如下:


import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.io.DocumentSource;
import org.dom4j.io.SAXReader;

/**
 * 将xml+xslt 转换为 html
 * @author xiaoyue
 *
 */
public class TestXmlXsltToHtml {
    
    public static void main(String[] args) {
        try {
            SAXReader saxReader = new SAXReader();
            Document document = saxReader.read(new File("D:\\work_myeclipse_6.5\\testSSI\\WebRoot\\tpl\\books.xml")); 
            TransformerFactory factory = TransformerFactory.newInstance();   
            //XSLT样式表是静态存储在文件中的,   
            //javax.XML.transform.Templates接口把它们解析好了进内存里缓存起来     
            StreamSource xsl = new StreamSource("D:\\work_myeclipse_6.5\\testSSI\\WebRoot\\tpl\\books.xsl");
            Transformer transformer = factory.newTransformer(xsl);   
            Properties props = transformer.getOutputProperties();   
            props.setProperty(OutputKeys.ENCODING,"GBK");   
            props.setProperty(OutputKeys.METHOD,"html");   
            props.setProperty(OutputKeys.VERSION,"4.0");   

            transformer.setOutputProperties(props);    
            DocumentSource docSource = new DocumentSource(document);   
            StringWriter strWriter = new StringWriter();   
            StreamResult docResult =new StreamResult(strWriter) ;   
            transformer.transform(docSource, docResult);   
            System.out.println("strWriter:"+strWriter.toString());  
        } catch(Exception e) {
            
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值