<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:template match="/"> <HTML> <HEAD> <TITLE>Electric Juicers</TITLE> </HEAD> <BODY> <xsl:for-each select="/juicers/juicer"> <xsl:variable name="juicerName" select="name"/> <xsl:variable name="isElectric" select="@electric"/> <xsl:if test="$isElectric='true'"> This juicer is electric: <xsl:value-of select="$juicerName"/><br/> </xsl:if> </xsl:for-each> </BODY> </HTML> </xsl:template> </xsl:stylesheet> |
On eut faire mieux mais voici la version 'simple':
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:template match="/"> <HTML> <HEAD> <TITLE>Determine if the Juicer XML document contains certain juicers</TITLE> </HEAD> <BODY> <xsl:variable name="juicerList"> <xsl:for-each select="/juicers/juicer[position() < last()]"> <xsl:value-of select="name"/> <xsl:text>~</xsl:text> </xsl:for-each> <xsl:value-of select="/juicers/juicer[last()]/name"/> </xsl:variable> Juicer List: <xsl:value-of select="$juicerList"/><br/> <xsl:if test="contains($juicerList, 'Champion')"> <xsl:text>- contains Champion</xsl:text><br/> </xsl:if> <xsl:if test="not(contains($juicerList, 'Champion'))"> <xsl:text>- does not contain Champion</xsl:text><br/> </xsl:if> <xsl:if test="contains($juicerList, 'Omega')"> <xsl:text>- contains Omega</xsl:text><br/> </xsl:if> <xsl:if test="not(contains($juicerList, 'Omega'))"> <xsl:text>- does not contain Omega</xsl:text><br/> </xsl:if> <xsl:if test="contains($juicerList, 'Ultrex')"> <xsl:text>- contains Ultrex</xsl:text><br/> </xsl:if> <xsl:if test="not(contains($juicerList, 'Ultrex'))"> <xsl:text>- does not contain Ultrex</xsl:text><br/> </xsl:if> </BODY> </HTML> </xsl:template> </xsl:stylesheet> |
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:variable name="lcase" select="'abcdefghijklmnopqrstuvwxyz'"/> <xsl:variable name="ucase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/> <xsl:template match="/" > <HTML> <HEAD> <TITLE>Airports</TITLE> </HEAD> <BODY> <xsl:for-each select="/airports/location"> <xsl:choose> <xsl:when test="starts-with(.,'ICAO:')"> <xsl:text>ICAO = </xsl:text> <xsl:variable name="icao" select="substring-after(., 'ICAO:')"/> <xsl:value-of select="translate($icao, $lcase, $ucase)"/> <BR/> </xsl:when> <xsl:when test="starts-with(.,'LatLon:')"> <xsl:text>LatLon = </xsl:text> <xsl:variable name="latlon" select="substring-after(., 'LatLon:')"/> <xsl:value-of select="translate($latlon, $lcase, $ucase)"/> <BR/> </xsl:when> <xsl:otherwise> <xsl:text>Data Error! Data must be formatted as: ICAO: code, or LatLon: value</xsl:text> <BR/> </xsl:otherwise> </xsl:choose> </xsl:for-each> </BODY> </HTML> </xsl:template> </xsl:stylesheet> |
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:template match="/"> <HTML> <HEAD> <TITLE>Juicers and Their Cost</TITLE> </HEAD> <BODY> <xsl:variable name="priceAdjuster" select="document('priceAdjuster.xml')"/> <xsl:if test="$priceAdjuster/priceAdjustment/adjustment/@action='no change'"> <TABLE BORDER="1" WIDTH="50%"> <TR> <TH>Juicer</TH><TH>Cost</TH> </TR> <xsl:for-each select="/juicers/juicer"> <TR> <TD><xsl:value-of select="name"/></TD> <TD><xsl:value-of select="format-number(cost[@currency='USD'], '$#.00')"/></TD> </TR> </xsl:for-each> </TABLE> </xsl:if> <xsl:if test="$priceAdjuster/priceAdjustment/adjustment/@action='increase'"> <xsl:variable name="sizeIncrease" select="$priceAdjuster/priceAdjustment/adjustment/sizeIncrease"/> <TABLE BORDER="1" WIDTH="50%"> <TR> <TH>Juicer</TH><TH>Cost</TH> </TR> <xsl:for-each select="/juicers/juicer"> <TR> <TD><xsl:value-of select="name"/></TD> <xsl:variable name="newCost" select="((cost[@currency='USD'] * ($sizeIncrease div 100)) + cost[@currency='USD'])"/> <TD><xsl:value-of select="format-number($newCost, '$#.00')"/></TD> </TR> </xsl:for-each> </TABLE> </xsl:if> </BODY> </HTML> </xsl:template> </xsl:stylesheet> |
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:template match="/"> <HTML> <HEAD> <TITLE>Juicers and Their Cost</TITLE> </HEAD> <BODY> <xsl:variable name="priceAdjuster" select="document('priceAdjuster2.xml')"/> <xsl:if test="$priceAdjuster/priceAdjustment/adjustment/@action='no change'"> <xsl:call-template name="createJuicerCostTable"/> </xsl:if> <xsl:if test="$priceAdjuster/priceAdjustment/adjustment/@action='increase'"> <xsl:variable name="sizeIncrease" select="$priceAdjuster/priceAdjustment/adjustment/sizeIncrease"/> <xsl:call-template name="createJuicerCostTable"> <xsl:with-param name="sizeIncrease" select="$sizeIncrease"/> </xsl:call-template> </xsl:if> </BODY> </HTML> </xsl:template> <xsl:template name="createJuicerCostTable"> <xsl:param name="sizeIncrease" select="0"/> <TABLE BORDER="1" WIDTH="50%"> <TR> <TH>Juicer</TH><TH>Cost</TH> </TR> <xsl:for-each select="/juicers/juicer"> <TR> <TD><xsl:value-of select="name"/></TD> <xsl:variable name="newCost" select="((cost[@currency='USD'] * ($sizeIncrease div 100)) + cost[@currency='USD'])"/> <TD><xsl:value-of select="format-number($newCost, '$#.00')"/></TD> </TR> </xsl:for-each> </TABLE> </xsl:template> </xsl:stylesheet> |
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:variable name="lcase" select="'abcdefghijklmnopqrstuvwxyz'"/> <xsl:variable name="ucase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/> <xsl:output method="xml"/> <xsl:template match="*"> <xsl:element name="{translate(name(.), $lcase, $ucase)}"> <xsl:for-each select="@*"> <xsl:attribute name="{translate(name(.), $lcase, $ucase)}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> <xsl:apply-templates/> </xsl:element> </xsl:template> </xsl:stylesheet> |
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml"/> <xsl:template match="company_data"> <xsl:element name="{name(.)}"> <xsl:for-each select="@*"> <xsl:attribute name="{name(.)}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> <xsl:apply-templates select="*"/> <xsl:text> </xsl:text> </xsl:element> </xsl:template> <xsl:template match="data"> <xsl:text> </xsl:text> <xsl:element name="{name(.)}"> <xsl:for-each select="@*"> <xsl:attribute name="{name(.)}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> <xsl:apply-templates/> </xsl:element> </xsl:template> <xsl:template match="data[@classification='top-secret']"> <!-- Delete the top-secret data --> </xsl:template> </xsl:stylesheet> |
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml"/> <xsl:template match="juicers"> <xsl:element name="JuicerCatalogue"> <xsl:apply-templates/> </xsl:element> </xsl:template> <xsl:template match="juicer"> <xsl:element name="Juicer"> <xsl:attribute name="id"> <xsl:value-of select="@id"/> </xsl:attribute> <xsl:element name="Type"> <xsl:value-of select="@type"/> </xsl:element> <xsl:apply-templates/> </xsl:element> </xsl:template> <xsl:template match="name"> <xsl:element name="Name"> <xsl:apply-templates/> </xsl:element> </xsl:template> <xsl:template match="image"> <!-- Drop it --> </xsl:template> <xsl:template match="description"> <xsl:element name="Description"> <xsl:apply-templates/> </xsl:element> </xsl:template> <xsl:template match="warranty"> <!-- Drop it --> </xsl:template> <xsl:template match="weight"> <!-- Drop it --> </xsl:template> <xsl:template match="cost"> <!-- Drop it --> </xsl:template> <xsl:template match="retailer"> <!-- Drop it --> </xsl:template> </xsl:stylesheet> |
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml"/> <xsl:template match="/"> <xsl:apply-templates select="PLAY/PERSONAE"/> </xsl:template> <xsl:template match="*"> <xsl:element name="{name(.)}"> <xsl:for-each select="@*"> <xsl:attribute name="{name(.)}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> <xsl:apply-templates/> </xsl:element> </xsl:template> </xsl:stylesheet> |
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml"/> <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> <xsl:template match="juicers"> <xsl:element name="juicers"> <xsl:apply-templates/> <xsl:element name="footnote"> <xsl:apply-templates mode="footnote"/> </xsl:element> </xsl:element> </xsl:template> <xsl:template match="juicer"> <xsl:element name="juicer"> <xsl:attribute name="id"> <xsl:value-of select="@id"/> </xsl:attribute> <xsl:apply-templates select="name"/> </xsl:element> </xsl:template> <xsl:template match="juicer" mode="footnote"> <xsl:element name="item"> <xsl:value-of select="name"/> <xsl:text>/</xsl:text> <xsl:value-of select="cost[@currency='USD']"/> </xsl:element> </xsl:template> <xsl:template match="name"> <xsl:element name="Name"> <xsl:apply-templates/> </xsl:element> </xsl:template> <xsl:template match="description"> <xsl:element name="Description"> <xsl:apply-templates/> </xsl:element> </xsl:template> </xsl:stylesheet> |