|
|
Jetty example source code file (site.xsl)
This example Jetty source code file (site.xsl) is included in the DevDaily.com
"Java Source Code
Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.
The Jetty site.xsl source code
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:output method="html" encoding="UTF-8"/>
<xsl:key name="cat" match="category" use="@name"/>
<xsl:template match="/">
<xsl:for-each select="site">
<html>
<head>
<title>Jetty Eclipse Download Site
<style>@import url("web/site.css");
</head>
<body>
<h1 class="title">Jetty Eclipse Download Site
<p class="bodyText">
<table width="100%" border="0" cellspacing="1" cellpadding="2">
<xsl:for-each select="category-def">
<xsl:sort select="@label" order="ascending" case-order="upper-first"/>
<xsl:sort select="@name" order="ascending" case-order="upper-first"/>
<xsl:if test="count(key('cat',@name)) != 0">
<tr class="header">
<td class="sub-header" width="30%">
<xsl:value-of select="@name"/>
</td>
<td class="sub-header" width="70%">
<xsl:value-of select="@label"/>
</td>
</tr>
<xsl:for-each select="key('cat',@name)">
<xsl:sort select="ancestor::feature//@version" order="ascending"/>
<xsl:sort select="ancestor::feature//@id" order="ascending" case-order="upper-first"/>
<tr>
<xsl:choose>
<xsl:when test="(position() mod 2 = 1)">
<xsl:attribute name="class">dark-row
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">light-row
</xsl:otherwise>
</xsl:choose>
<td class="log-text" id="indent">
<xsl:choose>
<xsl:when test="ancestor::feature//@label">
<a href="{ancestor::feature//@url}">
<br/>
<div id="indent">
(<xsl:value-of select="ancestor::feature//@id"/> - )
</div>
</xsl:when>
<xsl:otherwise>
<a href="{ancestor::feature//@url}"> -
</xsl:otherwise>
</xsl:choose>
<br />
</td>
<td>
<table>
<xsl:if test="ancestor::feature//@os">
<tr>| Operating Systems: |
<td class="log-text" id="indent"> |
</tr>
</xsl:if>
<xsl:if test="ancestor::feature//@ws">
<tr>Windows Systems: |
<td class="log-text" id="indent">
</tr>
</xsl:if>
<xsl:if test="ancestor::feature//@nl">
<tr>Languages: |
<td class="log-text" id="indent">
</tr>
</xsl:if>
<xsl:if test="ancestor::feature//@arch">
<tr>Architecture: |
<td class="log-text" id="indent">
</tr>
</xsl:if>
</table>
</td>
</tr>
</xsl:for-each>
<tr>
|
|
</xsl:if>
</xsl:for-each>
<xsl:if test="count(feature) > count(feature/category)">
<tr class="header">
<td class="sub-header" colspan="2">
Uncategorized
</td>
</tr>
</xsl:if>
<xsl:choose>
<xsl:when test="function-available('msxsl:node-set')">
<xsl:variable name="rtf-nodes">
<xsl:for-each select="feature[not(category)]">
<xsl:sort select="@id" order="ascending" case-order="upper-first"/>
<xsl:sort select="@version" order="ascending" />
<xsl:value-of select="."/>
<xsl:copy-of select="." />
</xsl:for-each>
</xsl:variable>
<xsl:variable name="myNodeSet" select="msxsl:node-set($rtf-nodes)/*"/>
<xsl:for-each select="$myNodeSet">
<tr>
<xsl:choose>
<xsl:when test="position() mod 2 = 1">
<xsl:attribute name="class">dark-row
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">light-row
</xsl:otherwise>
</xsl:choose>
<td class="log-text" id="indent">
<xsl:choose>
<xsl:when test="@label">
<a href="{@url}">