[howto.xml]
[howto.xsl]
[HowToXSLT.java]
howto.html显示为:
也可以在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>
<?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> |
<?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> |
// 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显示为:
Title | URL |
---|---|
Java | http://www.rgagnon/javahowto.htm |
PowerBuilder | http://www.rgagnon/pbhowto.htm |
Javascript | http://www.rgagnon/jshowto.htm |
VBScript | http://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>