<?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>
|