Creating a Self-Contained HTML Transformation
Problem
You want to package XML data, as well as a stylesheet for converting it to HTML, into a single file.
Solution
This recipe assumes you have a browser that supports client-side XSLT transformations (IE 6.0, IE 5.x + MSXML 3.0, Netscape Navigator 6.0, etc.):
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="application/xml" href="selfcontained.xsl"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pf="http://www.ora.com/XSLTCookbook/namespaces/portfolio"> <portfolio xmlns="http://www.ora.com/XSLTCookbook/namespaces/portfolio"> <investment> <symbol>IBM</symbol> <current>72.70</current> <paid>65.00</paid> <qty>1000</qty> </investment> <investment> <symbol>JMAR</symbol> <current>1.90</current> <paid>5.10</paid> <qty>5000</qty> </investment> <investment> <symbol>DELL</symbol> <current>24.50</current> <paid>18.00</paid> <qty>100000</qty> </investment> <investment> <symbol>P</symbol> <current>57.33</current> <paid>63</paid> <qty>100</qty> </investment> </portfolio> <xsl:output method="html" /> <xsl:attribute-set name="gain-loss-font"> <xsl:attribute name="color"> <xsl:choose> <xsl:when test="(pf:current - pf:paid) * pf:qty >= 0">black</xsl:when> <xsl:otherwise>red</xsl:otherwise> </xsl:choose> </xsl:attribute> </xsl:attribute-set> <xsl:template match="xsl:stylesheet"> <xsl:apply-templates select="pf:portfolio"/> </xsl:template> <xsl:template match="pf:portfolio"> <html> <head> <title>My ...
Get XSLT Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.