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) {

}
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇