You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
628 lines
18 KiB
628 lines
18 KiB
<?xml version="1.0"?>
|
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
xmlns="http://periapsis.org/tellico/"
|
|
xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2007-10-29"
|
|
xmlns:exsl="http://exslt.org/common"
|
|
extension-element-prefixes="exsl"
|
|
version="1.0">
|
|
|
|
<!--
|
|
===================================================================
|
|
Tellico XSLT file - used for importing Amazon Web Services data.
|
|
|
|
Copyright (C) 2004-2007 Robby Stephenson - robby@periapsis.org
|
|
|
|
This XSLT stylesheet is designed to be used with the 'Tellico'
|
|
application, which can be found at http://www.periapsis.org/tellico/
|
|
|
|
===================================================================
|
|
-->
|
|
|
|
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
|
|
doctype-public="-//Robby Stephenson/DTD Tellico V10.0//EN"
|
|
doctype-system="http://periapsis.org/tellico/dtd/v10/tellico.dtd"/>
|
|
|
|
|
|
<!-- need to figure out what type of collection -->
|
|
<xsl:variable name="args" select="//aws:OperationRequest/aws:Arguments"/>
|
|
<xsl:variable name="tmp">
|
|
<xsl:choose>
|
|
<!-- SearchIndex is mode, unless doing ISBN or UPC search -->
|
|
<xsl:when test="$args/aws:Argument[@Name='SearchIndex']">
|
|
<xsl:value-of select="$args/aws:Argument[@Name='SearchIndex']/@Value"/>
|
|
</xsl:when>
|
|
<!-- only happens for books -->
|
|
<xsl:when test="$args/aws:Argument[@Name='Operation']/@Value='ItemLookup'">
|
|
<xsl:text>Books</xsl:text>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<!-- France might have DVD instead of Video -->
|
|
<xsl:variable name="mode">
|
|
<xsl:choose>
|
|
<xsl:when test="$tmp='DVD'">
|
|
<xsl:text>Video</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$tmp"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
|
|
<!-- for lower-casing -->
|
|
<xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable>
|
|
<xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
|
|
|
|
<!-- disable default behavior -->
|
|
<xsl:template match="text()|@*"></xsl:template>
|
|
|
|
<xsl:template match="/">
|
|
<tellico syntaxVersion="10">
|
|
<collection title="Amazon Import">
|
|
<xsl:attribute name="type">
|
|
<xsl:choose>
|
|
<xsl:when test="$mode='Books'">
|
|
<xsl:text>2</xsl:text>
|
|
</xsl:when>
|
|
<xsl:when test="$mode='Video'">
|
|
<xsl:text>3</xsl:text>
|
|
</xsl:when>
|
|
<!-- also can be pop-music-de -->
|
|
<xsl:when test="$mode='Music'">
|
|
<xsl:text>4</xsl:text>
|
|
</xsl:when>
|
|
<xsl:when test="$mode='VideoGames'">
|
|
<xsl:text>11</xsl:text>
|
|
</xsl:when>
|
|
<xsl:when test="$mode='Toys'">
|
|
<xsl:text>13</xsl:text>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:attribute>
|
|
<fields>
|
|
<field name="_default"/>
|
|
<field flags="0" title="Amazon Link" category="General" format="4" type="7" name="amazon" i18n="true"/>
|
|
<!-- the amazon importer will actually download the images and ignore these fields -->
|
|
<field flags="0" title="Small Image" category="Images" format="4" type="7" name="small-image"/>
|
|
<field flags="0" title="Medium Image" category="Images" format="4" type="7" name="medium-image"/>
|
|
<field flags="0" title="Large Image" category="Images" format="4" type="7" name="large-image"/>
|
|
</fields>
|
|
<!-- results for board games need to be filtered -->
|
|
<xsl:if test="$mode != 'Toys'">
|
|
<xsl:for-each select="//aws:Items/aws:Item">
|
|
<xsl:apply-templates select="."/>
|
|
</xsl:for-each>
|
|
</xsl:if>
|
|
<xsl:if test="$mode = 'Toys'">
|
|
<!-- only grab items in the board games category -->
|
|
<xsl:for-each select="//aws:Items/aws:Item[.//aws:BrowseNode/aws:Name='Board Games' or
|
|
.//aws:BrowseNode/aws:BrowseNodeId='166225011']">
|
|
<xsl:apply-templates select="."/>
|
|
</xsl:for-each>
|
|
</xsl:if>
|
|
</collection>
|
|
</tellico>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="aws:Item">
|
|
<entry>
|
|
<amazon>
|
|
<xsl:value-of select="aws:DetailPageURL"/>
|
|
</amazon>
|
|
|
|
<small-image>
|
|
<xsl:value-of select="aws:SmallImage/aws:URL"/>
|
|
</small-image>
|
|
|
|
<medium-image>
|
|
<xsl:value-of select="aws:MediumImage/aws:URL"/>
|
|
</medium-image>
|
|
|
|
<large-image>
|
|
<xsl:value-of select="aws:LargeImage/aws:URL"/>
|
|
</large-image>
|
|
|
|
<xsl:choose>
|
|
<xsl:when test="$mode='Books'">
|
|
<comments>
|
|
<xsl:value-of select="aws:EditorialReviews/aws:EditorialReview/aws:Content"/>
|
|
</comments>
|
|
|
|
<keywords i18n="true">
|
|
<xsl:for-each select="aws:BrowseNodes/aws:BrowseNode">
|
|
<keyword>
|
|
<xsl:call-template name="nodes">
|
|
<xsl:with-param name="node" select="."/>
|
|
</xsl:call-template>
|
|
</keyword>
|
|
</xsl:for-each>
|
|
</keywords>
|
|
</xsl:when>
|
|
|
|
<xsl:when test="$mode='Music'">
|
|
<comments>
|
|
<xsl:value-of select="aws:EditorialReviews/aws:EditorialReview[1]/aws:Content"/>
|
|
</comments>
|
|
|
|
<tracks>
|
|
<!-- too hard to know which artist goes with which track, just grab first -->
|
|
<xsl:variable name="artist" select="aws:ItemAttributes/aws:Artist[1]"/>
|
|
<xsl:for-each select="aws:Tracks//aws:Track">
|
|
<track>
|
|
<xsl:value-of select="."/>
|
|
<xsl:text>::</xsl:text>
|
|
<!-- too hard to know which artist goes with which track, just grab first -->
|
|
<xsl:value-of select="$artist"/>
|
|
</track>
|
|
</xsl:for-each>
|
|
</tracks>
|
|
|
|
<!-- these get cleaned up within Tellico itself -->
|
|
<genres i18n="true">
|
|
<xsl:for-each select="aws:BrowseNodes/aws:BrowseNode">
|
|
<genre>
|
|
<xsl:call-template name="nodes">
|
|
<xsl:with-param name="node" select="."/>
|
|
</xsl:call-template>
|
|
</genre>
|
|
</xsl:for-each>
|
|
</genres>
|
|
</xsl:when>
|
|
|
|
<xsl:when test="$mode='Video'">
|
|
<plot>
|
|
<xsl:value-of select="aws:EditorialReviews/aws:EditorialReview[1]/aws:Content"/>
|
|
</plot>
|
|
|
|
<!-- these get cleaned up within Tellico itself -->
|
|
<genres i18n="true">
|
|
<xsl:for-each select="aws:BrowseNodes/aws:BrowseNode">
|
|
<genre>
|
|
<xsl:call-template name="nodes">
|
|
<xsl:with-param name="node" select="."/>
|
|
</xsl:call-template>
|
|
</genre>
|
|
</xsl:for-each>
|
|
</genres>
|
|
</xsl:when>
|
|
|
|
<xsl:when test="$mode='VideoGames'">
|
|
<description>
|
|
<xsl:value-of select="aws:EditorialReviews/aws:EditorialReview[1]/aws:Content"/>
|
|
</description>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
|
|
<xsl:apply-templates select="aws:ItemAttributes"/>
|
|
</entry>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="aws:ItemAttributes">
|
|
<title>
|
|
<xsl:value-of select="aws:Title"/>
|
|
</title>
|
|
|
|
<languages>
|
|
<xsl:for-each select="aws:Languages/aws:Language[not(aws:Name=preceding-sibling::aws:Language/aws:Name)]">
|
|
<language>
|
|
<xsl:value-of select="aws:Name"/>
|
|
</language>
|
|
</xsl:for-each>
|
|
</languages>
|
|
|
|
<xsl:choose>
|
|
<!-- book collection stuff -->
|
|
<xsl:when test="$mode='Books'">
|
|
<authors>
|
|
<xsl:for-each select="aws:Author">
|
|
<author>
|
|
<xsl:value-of select="."/>
|
|
</author>
|
|
</xsl:for-each>
|
|
</authors>
|
|
|
|
<isbn>
|
|
<!-- the EAN is the isbn-13 value for books -->
|
|
<xsl:choose>
|
|
<xsl:when test="aws:ISBN">
|
|
<xsl:value-of select="aws:ISBN"/>
|
|
</xsl:when>
|
|
<xsl:when test="aws:EAN">
|
|
<xsl:value-of select="aws:EAN"/>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</isbn>
|
|
|
|
<publisher>
|
|
<xsl:value-of select="aws:Publisher"/>
|
|
</publisher>
|
|
|
|
<editors>
|
|
<xsl:for-each select="aws:Creator[@Role='Editor']">
|
|
<editor>
|
|
<xsl:value-of select="."/>
|
|
</editor>
|
|
</xsl:for-each>
|
|
</editors>
|
|
|
|
<binding i18n="true">
|
|
<xsl:choose>
|
|
<xsl:when test="aws:Binding='Hardcover'">
|
|
<xsl:text>Hardback</xsl:text>
|
|
</xsl:when>
|
|
<xsl:when test="contains(aws:Binding, 'Paperback')">
|
|
<xsl:text>Paperback</xsl:text>
|
|
</xsl:when>
|
|
<!-- specifically for France -->
|
|
<xsl:when test="aws:Binding='Broché' or aws:Binding='Poche'">
|
|
<xsl:text>Souple</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="aws:Binding"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</binding>
|
|
|
|
<pub_year>
|
|
<xsl:call-template name="year">
|
|
<xsl:with-param name="value" select="aws:PublicationDate"/>
|
|
</xsl:call-template>
|
|
</pub_year>
|
|
|
|
<edition>
|
|
<xsl:value-of select="aws:Edition"/>
|
|
</edition>
|
|
|
|
<pages>
|
|
<xsl:value-of select="aws:NumberOfPages"/>
|
|
</pages>
|
|
</xsl:when>
|
|
|
|
<!-- music collection stuff -->
|
|
<xsl:when test="$mode='Music'">
|
|
<artists>
|
|
<xsl:for-each select="aws:Artist">
|
|
<artist>
|
|
<xsl:value-of select="."/>
|
|
</artist>
|
|
</xsl:for-each>
|
|
<!-- only add composers if no artist -->
|
|
<xsl:if test="not(aws:Artist)">
|
|
<xsl:for-each select="aws:Creator[@Role='Composer']">
|
|
<artist>
|
|
<xsl:value-of select="."/>
|
|
</artist>
|
|
</xsl:for-each>
|
|
</xsl:if>
|
|
</artists>
|
|
|
|
<year>
|
|
<xsl:call-template name="year">
|
|
<xsl:with-param name="value" select="aws:ReleaseDate"/>
|
|
</xsl:call-template>
|
|
</year>
|
|
|
|
<labels>
|
|
<label>
|
|
<xsl:value-of select="aws:Label"/>
|
|
</label>
|
|
</labels>
|
|
|
|
<medium i18n="true">
|
|
<xsl:variable name="medium" select="aws:Binding"/>
|
|
<xsl:choose>
|
|
<xsl:when test="$medium='Audio CD'">
|
|
<xsl:text>Compact Disc</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:comment>
|
|
<xsl:value-of select="$medium"/>
|
|
</xsl:comment>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</medium>
|
|
</xsl:when>
|
|
|
|
<!-- video collection stuff -->
|
|
<xsl:when test="$mode='Video'">
|
|
<directors>
|
|
<xsl:for-each select="aws:Director">
|
|
<director>
|
|
<xsl:value-of select="."/>
|
|
</director>
|
|
</xsl:for-each>
|
|
</directors>
|
|
|
|
<casts>
|
|
<!-- special case for french, there might be more actors than aws:Actor elements -->
|
|
<xsl:for-each select="aws:Creator[@Role='Acteur']">
|
|
<!-- cast is a 2-column table -->
|
|
<cast>
|
|
<column>
|
|
<xsl:value-of select="."/>
|
|
</column>
|
|
</cast>
|
|
</xsl:for-each>
|
|
<!-- assume only add actor if no creators -->
|
|
<xsl:if test="not(aws:Creator[@Role='Acteur'])">
|
|
<xsl:for-each select="aws:Actor">
|
|
<!-- cast is a 2-column table -->
|
|
<cast>
|
|
<column>
|
|
<xsl:value-of select="."/>
|
|
</column>
|
|
</cast>
|
|
</xsl:for-each>
|
|
</xsl:if>
|
|
</casts>
|
|
|
|
<year>
|
|
<xsl:call-template name="year">
|
|
<xsl:with-param name="value" select="aws:TheatricalReleaseDate"/>
|
|
</xsl:call-template>
|
|
</year>
|
|
|
|
<medium i18n="true">
|
|
<xsl:variable name="medium" select="aws:ProductGroup"/>
|
|
<xsl:choose>
|
|
<xsl:when test="$medium='Video'">
|
|
<xsl:text>VHS</xsl:text>
|
|
</xsl:when>
|
|
<xsl:when test="contains(translate($medium,$lcletters,$ucletters),'blu-ray')">
|
|
<xsl:text>Blu-ray</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$medium"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</medium>
|
|
|
|
<color i18n="true">
|
|
<xsl:choose>
|
|
<xsl:when test="aws:Format[.='Black & White']">
|
|
<xsl:text>Black & White</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:text>Color</xsl:text>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</color>
|
|
|
|
<aspect-ratios>
|
|
<xsl:for-each select="aws:AspectRatio">
|
|
<aspect-ratio>
|
|
<xsl:value-of select="."/>
|
|
</aspect-ratio>
|
|
</xsl:for-each>
|
|
</aspect-ratios>
|
|
|
|
<xsl:if test="aws:Format[.='Widescreen']">
|
|
<widescreen>
|
|
<xsl:text>true</xsl:text>
|
|
</widescreen>
|
|
</xsl:if>
|
|
|
|
<languages>
|
|
<xsl:for-each select="aws:Languages/aws:Language[not(aws:Name=preceding-sibling::aws:Language/aws:Name)]">
|
|
<language>
|
|
<xsl:value-of select="aws:Name"/>
|
|
</language>
|
|
</xsl:for-each>
|
|
</languages>
|
|
|
|
<audio-tracks>
|
|
<xsl:choose>
|
|
<xsl:when test="aws:Languages/aws:Language/aws:AudioFormat[starts-with(.,'Dolby')]">
|
|
<audio-track>
|
|
<xsl:value-of select="aws:Languages/aws:Language/aws:AudioFormat[starts-with(.,'Dolby')][1]"/>
|
|
</audio-track>
|
|
</xsl:when>
|
|
<xsl:when test="aws:Format[starts-with(.,'Dolby')]">
|
|
<audio-track>
|
|
<xsl:value-of select="aws:Format[starts-with(.,'Dolby')][1]"/>
|
|
</audio-track>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
<xsl:if test="aws:Languages/aws:Language/aws:AudioFormat[starts-with(.,'DTS')]">
|
|
<audio-track>
|
|
<xsl:value-of select="aws:Languages/aws:Language/aws:AudioFormat[starts-with(.,'DTS')][1]"/>
|
|
</audio-track>
|
|
</xsl:if>
|
|
</audio-tracks>
|
|
|
|
<certification i18n="true">
|
|
<xsl:variable name="mpaa" select="aws:AudienceRating"/>
|
|
<xsl:choose>
|
|
<xsl:when test="starts-with($mpaa, 'PG-13')">
|
|
<xsl:text>PG-13 (USA)</xsl:text>
|
|
</xsl:when>
|
|
<xsl:when test="starts-with($mpaa, 'PG')">
|
|
<xsl:text>PG (USA)</xsl:text>
|
|
</xsl:when>
|
|
<xsl:when test="starts-with($mpaa, 'R')">
|
|
<xsl:text>R (USA)</xsl:text>
|
|
</xsl:when>
|
|
<xsl:when test="starts-with($mpaa, 'G')">
|
|
<xsl:text>G (USA)</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:comment>
|
|
<xsl:value-of select="$mpaa"/>
|
|
</xsl:comment>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</certification>
|
|
|
|
<studios>
|
|
<studio>
|
|
<xsl:value-of select="aws:Studio"/>
|
|
</studio>
|
|
</studios>
|
|
|
|
<xsl:if test="aws:RegionCode">
|
|
<region i18n="true">
|
|
<xsl:value-of select="concat('Region ', aws:RegionCode)"/>
|
|
</region>
|
|
</xsl:if>
|
|
|
|
<xsl:if test="aws:RunningTime[@Units='minutes']">
|
|
<running-time>
|
|
<xsl:value-of select="aws:RunningTime[@Units='minutes']"/>
|
|
</running-time>
|
|
</xsl:if>
|
|
|
|
</xsl:when>
|
|
|
|
<!-- video game collection stuff -->
|
|
<xsl:when test="$mode='VideoGames'">
|
|
<publisher>
|
|
<xsl:value-of select="aws:Publisher"/>
|
|
</publisher>
|
|
|
|
<!-- assume year is last four characters of ReleaseDate -->
|
|
<year>
|
|
<xsl:call-template name="year">
|
|
<xsl:with-param name="value" select="aws:ReleaseDate"/>
|
|
</xsl:call-template>
|
|
</year>
|
|
|
|
<!-- assume that the only time there are multiple platforms is when it's for multiple versions of windows -->
|
|
<platform i18n="true">
|
|
<xsl:call-template name="platform">
|
|
<xsl:with-param name="value" select="aws:Platform"/>
|
|
</xsl:call-template>
|
|
</platform>
|
|
|
|
<genres i18n="true">
|
|
<xsl:for-each select="aws:Feature[starts-with(., 'Genre:')]">
|
|
<genre>
|
|
<xsl:value-of select="substring(., 7)"/> <!-- ends with a space -->
|
|
</genre>
|
|
</xsl:for-each>
|
|
</genres>
|
|
|
|
<certification i18n="true">
|
|
<xsl:choose>
|
|
<xsl:when test="aws:ESRBAgeRating = 'Rating Pending'">
|
|
<xsl:text>Pending</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="aws:ESRBAgeRating"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</certification>
|
|
</xsl:when>
|
|
|
|
<xsl:when test="$mode='Toys'">
|
|
<publishers>
|
|
<publisher>
|
|
<xsl:value-of select="(aws:Label|aws:Brand|aws:Publisher|aws:Manufacturer)[1]"/>
|
|
</publisher>
|
|
</publishers>
|
|
|
|
<description>
|
|
<xsl:value-of select="../aws:EditorialReviews/aws:EditorialReview[1]/aws:Content"/>
|
|
<xsl:for-each select="aws:Feature">
|
|
<xsl:value-of select="."/>
|
|
<!-- if the last character is not punctuation, add a period -->
|
|
<xsl:if test="not(contains('.!?,/', substring(., string-length(.))))">
|
|
<xsl:text>.</xsl:text>
|
|
</xsl:if>
|
|
<xsl:text> </xsl:text>
|
|
</xsl:for-each>
|
|
</description>
|
|
</xsl:when>
|
|
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="nodes">
|
|
<xsl:param name="node"/>
|
|
|
|
<xsl:variable name="firstNode" select="$node/aws:Name"/>
|
|
|
|
<xsl:variable name="tailNodes">
|
|
<xsl:choose>
|
|
<xsl:when test="$node/aws:Ancestors/aws:BrowseNode[1]/aws:Name">
|
|
<xsl:call-template name="nodes">
|
|
<xsl:with-param name="node" select="$node/aws:Ancestors/aws:BrowseNode[1]"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
|
|
<xsl:choose>
|
|
<xsl:when test="string-length($firstNode)">
|
|
<xsl:choose>
|
|
<xsl:when test="string-length($tailNodes)">
|
|
<xsl:value-of select="concat($tailNodes, '/', $firstNode)"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$firstNode"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
<xsl:when test="string-length($tailNodes)">
|
|
<xsl:value-of select="$tailNodes"/>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="year">
|
|
<xsl:param name="value"/>
|
|
<xsl:variable name="numbers">
|
|
<xsl:value-of select="translate($value, translate($value, '0123456789', ''), '')"/>
|
|
</xsl:variable>
|
|
<!-- assume that Amazon always encodes the date with the 4-digit year first -->
|
|
<xsl:value-of select="substring($numbers, 0, 5)"/>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="platform">
|
|
<xsl:param name="value"/>
|
|
<xsl:variable name="lcvalue">
|
|
<xsl:value-of select="translate($value, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
|
|
'abcdefghijklmnopqrstuvwxyz')"/>
|
|
</xsl:variable>
|
|
<xsl:choose>
|
|
<xsl:when test="contains($lcvalue, '360')">
|
|
<xsl:text>Xbox 360</xsl:text>
|
|
</xsl:when>
|
|
<xsl:when test="starts-with($lcvalue, 'x')">
|
|
<xsl:text>Xbox</xsl:text> <!-- as defined in the default field -->
|
|
</xsl:when>
|
|
<xsl:when test="contains($lcvalue, 'wii')">
|
|
<xsl:text>Nintendo Wii</xsl:text> <!-- as defined in the default field -->
|
|
</xsl:when>
|
|
<xsl:when test="$lcvalue = 'sony psp'">
|
|
<xsl:text>PSP</xsl:text> <!-- as defined in the default field -->
|
|
</xsl:when>
|
|
<xsl:when test="starts-with($lcvalue, 'windows')">
|
|
<xsl:text>Windows</xsl:text> <!-- as defined in the default field -->
|
|
</xsl:when>
|
|
<xsl:when test="starts-with($lcvalue, 'mac')">
|
|
<xsl:text>Mac OS</xsl:text> <!-- as defined in the default field -->
|
|
</xsl:when>
|
|
<xsl:when test="$lcvalue = 'sega dreamcast'">
|
|
<xsl:text>Dreamcast</xsl:text> <!-- as defined in the default field -->
|
|
</xsl:when>
|
|
<xsl:when test="starts-with($lcvalue, 'playstation')">
|
|
<xsl:choose>
|
|
<xsl:when test="contains($lcvalue, '3')">
|
|
<xsl:text>PlayStation3</xsl:text>
|
|
</xsl:when>
|
|
<xsl:when test="contains($lcvalue, '2')">
|
|
<xsl:text>PlayStation2</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$value"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$value"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|