Suppose the following XML feed listing a set of users:
<?xml version="1.0" encoding="UTF-8"?> <users> <user> <id>1</id> <login>lo</login> <email>laurent@sillysmart.org</email> </user> <user> <id>2</id> <login>flo</login> <email>florian@sillysmart.org</email> </user> <user> <id>3</id> <login>charly</login> <email>charly@sillysmart.org</email> </user> </users>
The following css :
table.bo_table_visible {
border:1px solid #000;
border-spacing: 0px;
margin-top:10px;
margin-bottom:10px;
}
table.bo_table_visible tr.summary th {
background:#2E2D2D;
color:#E45A49;
}
table.bo_table_visible tr td {
padding:0 10px;
}
table.bo_table_visible tr.even td, table.bo_table_visible tr th {
background-color:#FFF;
color:#000;
}
table.bo_table_visible tr.even:hover td {
background-color:#FF8ABC;
color:#FFF;
}
table.bo_table_visible tr.odd td {
background-color:#DFDFDF;
color:#000;
}
table.bo_table_visible tr.odd:hover td {
background-color:#64B8FE;
color:#FFF;
}
Simply apply the XSL script below to apply styles to your list of users:
<!--
- Apply css with XSL
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" version="1.0">
<xsl:output method="xml" encoding="UTF-8" indent="yes" />
<xsl:template match="root">
<html>
<head></head>
<body>
<table class="bo_table_visible">
<tr>
<th>Id</th>
<th>Login</th>
<th>Email</th>
</tr>
<xsl:for-each select="//users/user">
<xsl:variable name="cssClass">
<xsl:choose>
<xsl:when test="(position() mod 2) = 0">
even
</xsl:when>
<xsl:otherwise>
odd
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<tr class="{$cssClass}">
<td><xsl:value-of select="id" /></td>
<td><xsl:value-of select="login" /></td>
<td><xsl:value-of select="email" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Will produce :
| Id | Login | |
|---|---|---|
| 1 | lo | laurent@sillysmart.org |
| 2 | flo | florian@sillysmart.org |
| 3 | charly | charly@sillysmart.org |