相信你也知道,其实xsl也是一个标准的XML文件。所以可以提供一个大致思路给你,我自己只是用两个很简单的XML文件来实现了,从数据库里形成DOM文档相信你会吧。
:) 我的思路是:
1. 从数据库里生成XML与XSL相对应的两个DOM
2. 从上面两个DOM分别创建两个源(DOMSource)对象。
3. 创建结果(DOMResult || StreamResult || SAXResult)对象,用以保存输出
4. 创建转换(Transformer)对象。
5. 调用Transformer的方法执行转换。 我在本机上测试,用文件系统的XML与XSL文件执行成功,只不过这时我用的源对象与结果对象略有不同(StreamSource与StreamResult) 具体可以查阅上述几个类的方法与例子。
:) 我的思路是:
1. 从数据库里生成XML与XSL相对应的两个DOM
2. 从上面两个DOM分别创建两个源(DOMSource)对象。
3. 创建结果(DOMResult || StreamResult || SAXResult)对象,用以保存输出
4. 创建转换(Transformer)对象。
5. 调用Transformer的方法执行转换。 我在本机上测试,用文件系统的XML与XSL文件执行成功,只不过这时我用的源对象与结果对象略有不同(StreamSource与StreamResult) 具体可以查阅上述几个类的方法与例子。
解决方案 »
- 怎样配置jsp的开发坏境(完全没学过jsp的菜鸟求助)
- 一个TagSupport的问题!找一半天了都没找出问题来!请大家帮我看一下!
- 怎么用js取得列表中鼠标选中条目得value?
- jsp错误
- jsp中有一个<%! ……%>这样的一个函数调用,我如何在此过程中调用我自己写的包文件my.class文件
- 带Jstl 标签的对象的传递
- 高分求查找JSP注入漏洞的方法
- Jasperreports 的问题。
- 为什么我编的java程序编译的时候出现!javax.servlet.http.* 不存在!
- tomcat部署jsp文件出现404.3
- 数据库JAVA和ACCESS
- 从数据库循环取值的问题,一个简单的问题,请帮忙
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
/**
* 这个方法将xml通过样式单转换.
* @param xmlfile 将要被转换的xml文件路径
* @param xslfile XSL文件的文件路径
* @return String 转换后的字符串形式存放的html
*/
public static String ExecuteXSL(String xmlfile, String xslfile) {
try {
ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
TransformerFactory transformerFactory =
TransformerFactory.newInstance();
StreamSource source = new StreamSource(xmlfile);
StreamResult result = new StreamResult(byteRep);
StreamSource style = new StreamSource(xslfile);
Transformer transformer =
transformerFactory.newTransformer(style);
transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,
"GB2312"); //\u8BBE\u7F6E\u7F16\u7801
transformer.transform(source, result);
return byteRep.toString();
}
catch (Exception e) {
e.printStackTrace();
return null;
} }
javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: stylesheet 要求属性:version