日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

JAVA服務(wù)器端XML+XSLT轉(zhuǎn)換HTML代碼片段

 躍來躍去 2010-08-15
要實(shí)現(xiàn)的一個功能就是在JAVA的服務(wù)器端將數(shù)據(jù)庫中的數(shù)據(jù)取出然后寫入XML中,然后XML+XSLT相結(jié)合再轉(zhuǎn)換為HTML代碼片段。

基本的思路如下:
第一步,就是首先將數(shù)據(jù)和XML綁定??梢允褂肑AXB將數(shù)據(jù)寫入XML。但是此處并不打算這么做。因?yàn)閄ML結(jié)構(gòu)不復(fù)雜。所以決定還是通過程序?qū)?shù)據(jù)與XML綁定。本例子假設(shè)數(shù)據(jù)與XML綁定已經(jīng)完成。
第二步,將XSL解析設(shè)置放到內(nèi)存中緩存起來等待使用。
第三步,使用javax.XML.transform將XML與XSLT結(jié)合最后返回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 轉(zhuǎn)換為 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樣式表是靜態(tài)存儲在文件中的,  
            //javax.XML.transform.Templates接口把它們解析好了進(jìn)內(nèi)存里緩存起來    
            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) {
           
        }
    }
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多