XML File (stocks.xml)
<?xml version="1.0"?> <?xml:stylesheet type="text/xsl" href="stock.xsl"?> <portfolio xmlns:dt="urn:schemas-microsoft-com:datatypes"> <stock exchange="nasdaq"> <name>new</name> <symbol>zzzz</symbol> <price dt:dt="number">20.313</price> </stock> <stock exchange="nyse"> <name>zacx corp</name> <symbol>ZCXM</symbol> <price dt:dt="number">28.875</price> </stock> <stock exchange="nasdaq"> <name>zaffymat inc</name> <symbol>ZFFX</symbol> <price dt:dt="number">92.250</price> </stock> <stock exchange="nasdaq"> <name>zysmergy inc</name> <symbol>ZYSZ</symbol> <price dt:dt="number">20.313</price> </stock> </portfolio>
XSLT Style Sheet (stocks.xsl)
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <HTML> <BODY> <TABLE BORDER="2"> <TR> <TD>Symbol</TD> <TD>Name</TD> <TD>Price</TD> </TR> <!-- Use xsl:apply-templates. --> <xsl:apply-templates select="portfolio/stock"> <!-- Sort by stock symbols. --> <xsl:sort select="symbol"/> </xsl:apply-templates> </TABLE> </BODY> </HTML> </xsl:template> <xsl:template match="portfolio/stock"> <TR> <!-- Use xsl:choose and xsl:when. --> <xsl:attribute name="STYLE">color: <xsl:choose> <xsl:when test="price[. < 30]">green</xsl:when> <xsl:when test="price[. > 50]">red</xsl:when> </xsl:choose> </xsl:attribute> <!-- Generate an attribute as a tooltip of TR. --> <xsl:attribute name="Title"><xsl:value-of select="symbol"/> is listed on the <xsl:value-of select="@exchange"/> stock exchange.</xsl:attribute> <TD><xsl:value-of select="symbol"/> <!-- Use xsl:if. --> <xsl:if test="@exchange[.='nasdaq']">*</xsl:if></TD> <TD><xsl:value-of select="name"/></TD> <TD><xsl:value-of select="price"/></TD> </TR> </xsl:template> </xsl:stylesheet>
To add stocks.xml and stocks.xsl to the project
Note You can also copy the files into the project's main directory using Windows Explorer (or a command prompt).
Next, build and run the XSLT project. The result should be the output shown in the following topic.