1.由于公司需要用xslt 结合 xml 使用,并生成数据,只好研究了一下;下面是一个简单示例:
第一步:创建一个userMessage.xml 文件 文件内容如下:
[color=gray<?xml version="1.0" encoding="GBK" ?>
<?xml-stylesheet type="text/xsl" href="userMessage.xsl"?>
<user>
<message>
<userId>12345678900</userId>
<userName>王孟</userName>
<userAge>24</userAge>
<userSex>男</userSex>
<userTel>15221737051</userTel>
</message>
<message>
<userId>12345678901</userId>
<userName>姚萍</userName>
<userAge>22</userAge>
<userSex>女</userSex>
<userTel>15221737052</userTel>
</message>
<message>
<userId>12345678903</userId>
<userName>知州</userName>
<userAge>25</userAge>
<userSex>男</userSex>
<userTel>15221737053</userTel>
</message>
<message>
<userId>12345678904</userId>
<userName>张璇</userName>
<userAge>23</userAge>
<userSex>女</userSex>
<userTel>15221737054</userTel>
</message>
</user>[/color]
第二步:创建一个 userMessage.xsl 文件,文件格式如下:
[color=violet<?xml version="1.0" encoding="GBK" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="GBK" standalone="yes"/>
<xsl:template match="/">
<html>
<head>
<title>使用XML+XSLT生成的HTML文件</title>
</head>
<body>
<h2>我的第一个xslt 转换 html</h2>
<table border="1">
<tr bgcolor="#99FF66">
<th align="center">编号</th>
<th align="center">姓名</th>
<th align="center">年龄</th>
<th align="center">性别</th>
<th align="center">联系电话</th>
</tr>
<!-- 循环遍历 user元素下的message 的信息 -->
<xsl:for-each select="user/message">
<!-- 要排序的指段 -->
<xsl:sort select="userAge"></xsl:sort>
<tr bgcolor="#99CCFF">
<td><xsl:value-of select="userId"></xsl:value-of></td>
<td><xsl:value-of select="userName"></xsl:value-of></td>
<td><xsl:value-of select="userAge"></xsl:value-of></td>
<td><xsl:value-of select="userSex"></xsl:value-of></td>
<td><xsl:value-of select="userTel"></xsl:value-of></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>[/color]
第三步 :创建一个 Test 测试类:
package com.wm.test;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
public class Test {
/**
* 测试类
* @param args
* @throws ParserConfigurationException
*/
public static void main(String[] args) throws ParserConfigurationException {
// 实例化 DocumentBuilderFactory 对象
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
//得到 DocumentBuilder 对象
DocumentBuilder db = dbf.newDocumentBuilder();
//加载 test.xml,并将其转换为 Document 对象
Document doc = db.parse("WebRoot/conf/userMessage.xml");
//实例 DOMSource 对象
DOMSource source = new DOMSource(doc);
//输出结果,并定义结果输出路径
StreamResult result = new StreamResult(new File(
"WebRoot/conf/userMessage.html"));
//加载 xsl 文件
StreamSource ss = new StreamSource(
new File("WebRoot/conf/userMessage.xsl"));
//实例化 TransformerFactory 对象
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = tff.newTransformer(ss);
// 定义写个字符串
StringWriter sw = new StringWriter();
Result resulted = new StreamResult(sw);
//设定字符编码方式
tf.setOutputProperty("encoding", "GBK");
//将定义好的 .xsl 格式 转换
tf.transform(source, result);
tf.transform(source, resulted);
String str = null;
//将结果写为一个字符串,然后打印在控制台上
str = sw.toString();
System.out.println(str);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
运行结果可以在路径
WebRoot/conf/ 下找到 userMessage.html 文件;
该文件的效果为:
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=GBK">
<title>使用XML+XSLT生成的HTML文件</title>
</head>
<body>
<h2>我的第一个xslt 转换 html</h2>
<table border="1">
<tr bgcolor="#99FF66">
<th align="center">编号</th><th align="center">姓名</th><th align="center">年龄</th><th align="center">性别</th><th align="center">联系电话</th>
</tr>
<tr bgcolor="#99CCFF">
<td>12345678901</td><td>姚萍</td><td>22</td><td>女</td><td>15221737052</td>
</tr>
<tr bgcolor="#99CCFF">
<td>12345678904</td><td>张璇</td><td>23</td><td>女</td><td>15221737054</td>
</tr>
<tr bgcolor="#99CCFF">
<td>12345678900</td><td>王孟</td><td>24</td><td>男</td><td>15221737051</td>
</tr>
<tr bgcolor="#99CCFF">
<td>12345678903</td><td>知州</td><td>25</td><td>男</td><td>15221737053</td>
</tr>
</table>
</body>
</html>
利用以上方法,实现了自动生成html。方法蛮好的。效果图如下: