您的位置:首页 > 其它

XML+XSLT

2013-05-06 14:14 78 查看
要实现的一个功能就是在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) {

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: