您的位置:首页 > Web前端 > HTML

Transform XML into HTML using XSLT

2004-11-15 11:26 501 查看
[howto.xml]
<?xml version="1.0"?>
<howto>
<topic>
<title>Java</title>
<url>http://www.rgagnon/javahowto.htm</url>
</topic>
<topic>
<title>PowerBuilder</title>
<url>http://www.rgagnon/pbhowto.htm</url>
</topic>
<topic>
<title>Javascript</title>
<url>http://www.rgagnon/jshowto.htm</url>
</topic>
<topic>
<title>VBScript</title>
<url>http://www.rgagnon/vbshowto.htm</url>
</topic>
</howto>
[howto.xsl]
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<html>
<head><title>Real's HowTo</title></head>
<body>
<table border="1">
<tr>
<th>Title</th>
<th>URL</th>
</tr>
<xsl:for-each select="howto/topic">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="url"/></td>
</tr>
</xsl:for-each>
</table>
</body></html>
</xsl:template>
</xsl:stylesheet>
[HowToXSLT.java]
// jdk1.4.1
import javax.xml.transform.*;
import java.net.*;
import java.io.*;
public class HowToXSLT {
public static void main(String[] args) {
try {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer =
tFactory.newTransformer
(new javax.xml.transform.stream.StreamSource
("howto.xsl"));
transformer.transform
(new javax.xml.transform.stream.StreamSource
("howto.xml"),
new javax.xml.transform.stream.StreamResult
( new FileOutputStream("howto.html")));
}
catch (Exception e) {
e.printStackTrace( );
}
}
}
howto.html显示为:

TitleURL
Javahttp://www.rgagnon/javahowto.htm
PowerBuilderhttp://www.rgagnon/pbhowto.htm
Javascripthttp://www.rgagnon/jshowto.htm
VBScripthttp://www.rgagnon/vbshowto.htm
也可以在howto.xml中指定样式表:
<?xml version="1.0"?>
<?xml-stylesheet href="howto.xsl" type="text/xsl"?>
<howto>
<topic>
<title>Java</title>
<url>http://www.rgagnon/javahowto.htm</url>
</topic>
<topic>
<title>PowerBuilder</title>
<url>http://www.rgagnon/pbhowto.htm</url>
</topic>
<topic>
<title>Javascript</title>
<url>http://www.rgagnon/jshowto.htm</url>
</topic>
<topic>
<title>VBScript</title>
<url>http://www.rgagnon/vbshowto.htm</url>
</topic>
</howto>

xstl的一个实际应用的例子:
可以用以下脚本扫描CVS中代码的更改,并生成报表:

<target name="changelog">
<cvspass cvsroot="${CVSROOT}" password="comeonbaby"/>
<cvschangelog cvsroot="${CVSROOT}" dir="${workspace}"
destfile="${build_dir}/changelog.xml"
usersfile="${build_dir}/properties/usersfile.properties"
daysinpast="1"
/>
<style in="${build_dir}/changelog.xml"
out="${build_dir}/changelog.html"
style="${ant.home}/etc/changelog.xsl">
<param name="title" expression="ChangeLog"/>
<param name="module" expression="Eclipse"/>
<param name="cvsweb" expression="http://cvs.eclipse.com/viewcvs/"/>
</style>
</target>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: