Hi Experts,
I have the following xml file:
<?xml version="1.0" encoding="UTF-8"?>
<?xsl:stylesheet type="text/xsl" href="Employees.xsl"?>
<Employees>
<Employee id="1">
<age>42</age>
<name>Martina</name>
<gender>Female</gender>
<role>Cashier</role>
<distance unit="m">1300.0</distance>
</Employee>
<Employee id="2">
<age>30</age>
<name>Soletho</name>
<gender>Male</gender>
<role>Tester</role>
<distance unit="m">7203.5</distance>
</Employee>
<Employee id="3">
<age>19</age>
<name>Tom</name>
<gender>Male</gender>
<role>Manager</role>
<distance unit="m">9042.0</distance>
</Employee>
<Employee id="4">
<age>25</age>
<name>Meghna</name>
<gender>Female</gender>
<role>Clerk</role>
<distance unit="m">4100.0</distance>
</Employee>
<Employee id="5">
<age>42</age>
<name>Martha</name>
<gender>Female</gender>
<role>Cashier</role>
<distance unit="m">3000.0</distance>
</Employee>
<Employee id="6">
<age>31</age>
<name>Sindrathi</name>
<gender>Male</gender>
<role>Tester</role>
<distance unit="m">2300.5</distance>
</Employee>
<Employee id="7">
<age>19</age>
<name>Timothy</name>
<gender>Male</gender>
<role>Manager</role>
<distance unit="m">13950.0</distance
>
</Employee>
<Employee id="8">
<age>25</age>
<name>Solange</name>
<gender>Female</gender>
<role>Clerk</role>
<distance unit="m">9975.0</distance>
</Employee>
</Employees>
I want to display the information about the high performing employee at the corporate athletics/running event.
Here is what my xslt file looks like:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="
http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h1>Top Runner</h1>
<table border="1">
<tr bgcolor="#4000FF">
<th>Age</th>
<th>Name</th>
<th>Gender</th>
<th>Role</th>
<th>Distance</th>
</tr>
<xsl:variable name="top_runner" select="/Employees/Employe
e[not(numb
er(distanc
e) < ../Employee/distance)]/*" />
<xsl:for-each select="$top_runner" >
<tr>
<td>
<xsl:value-of select="Age" />
</td>
<td>
<xsl:value-of select="Name" />
</td>
<td>
<xsl:value-of select="Gender" />
</td>
<td>
<xsl:value-of select="Role" />
</td>
<td>
<xsl:value-of select="Distance" />
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Using the xpath expression, I do the sorting and attribute the high performing employee to the variable top_runner.
I want to be able to display the information in the variable in a table.
So far, I only get the header ...
I am surely missing something but I'm not sure what !
I'm quite new to xpath and xslt, altogether so would much appreciate your help.
Thanks.
Smanyx
- element names in XML are case sensitive
- in the variable you had the level wrong
you are trying to find "Age" as a child of a child of Employee
but you should b elooking for "age" as a direct child of Employee
Open in new window