Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <mediaList>
- <movie id="1299349" dateCreated="2014-04-11" lastModified="2014-04-12">
- <title>
- <titleSort>Armageddon</titleSort>
- </title>
- <director>
- <personTerm type="code" authority="lccn">no98124072</personTerm>
- <personTerm type="text">Bay, Michael, 1964-</personTerm>
- </director>
- <genre>Action and adventure</genre>
- <genre>Disaster</genre>
- <writer>
- <personTerm type="code" authority="lccn">n91119795</personTerm>
- <personTerm type="text">Hensleigh, Jonathan</personTerm>
- </writer>
- <writer>
- <personTerm type="code" authority="lccn">no98124254</personTerm>
- <personTerm type="text">Abrams, J. J. (Jeffrey Jacob), 1966-</personTerm>
- </writer>
- <screenplay href="http://endeavor.flo.org/vwebv/holdingsInfo?bibId=578717">PN1997 .A73 1997a</screenplay>
- <language>
- <languageTerm type="code" authority="iso639-2">eng</languageTerm>
- <languageTerm type="text">English</languageTerm>
- </language>
- <year>1998</year>
- <callNumber href="http://endeavor.flo.org/vwebv/holdingsInfo?bibId=1299349">[DVD] PN1995.9 .A3 B39 1999</callNumber>
- </movie>
- <movie id="1324917" dateCreated="2014-04-13">
- <title>
- <titleSort>Police Story 2</titleSort>
- </title>
- <director>
- <personTerm type="code" authority="lccn">no96039667</personTerm>
- <personTerm type="text">Cheng, Long, 1954-</personTerm>
- </director>
- <genre>Martial arts</genre>
- <genre>Buddy</genre>
- <writer>
- <personTerm type="code" authority="lccn">no96039667</personTerm>
- <personTerm type="text">Cheng, Long, 1954-</personTerm>
- </writer>
- <writer>
- <personTerm type="code" authority="lccn">no2005066079</personTerm>
- <personTerm type="text">Tang, Edward, 1946-</personTerm>
- </writer>
- <language>
- <languageTerm type="code" authority="iso639-3">yue</languageTerm>
- <languageTerm type="text">Yue Chinese</languageTerm>
- </language>
- <year>1988</year>
- <callNumber href="http://endeavor.flo.org/vwebv/holdingsInfo?bibId=1324917">[DVD] PN1995.9 .A3 C52 2006</callNumber>
- </movie>
- </Medialist
- <?xml version="1.0" encoding="UTF-8"?>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
- <xsl:output method="html"/>
- <xsl:template match="/">
- <html>
- <head>
- <link rel="stylesheet" type="text/css" href="mediaList.css"/>
- <title/>
- </head>
- <body>
- <table>
- <tr>
- <th>Title</th>
- <th>Director</th>
- <th>Genre</th>
- <th>Writer</th>
- <th>Screenplay</th>
- <th>Source</th>
- <th>Language</th>
- <th>Year</th>
- <th>Call Number</th>
- </tr>
- <xsl:for-each select="mediaList/movie">
- <tr>
- <td>
- <xsl:apply-templates select="./title"/>
- </td>
- <td>
- <xsl:apply-templates select="./director/personTerm[@type='text']"/>
- </td>
- <xsl:choose>
- <xsl:when test="count(./genre) > 1">
- <td>
- <xsl:call-template name="recursiveGenre">
- <xsl:with-param name="numberG" select="count(./genre)"/>
- </xsl:call-template>
- <xsl:value-of select="./genre[1]"/>
- </td>
- </xsl:when>
- <xsl:otherwise>
- <td>
- <xsl:value-of select="./genre"/>
- </td>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:choose>
- <xsl:when test="count(./writer) > 1">
- <td>
- <xsl:call-template name="recursive">
- <xsl:with-param name="number" select="count(./writer)"/>
- </xsl:call-template>
- <xsl:value-of select="writer[1]/personTerm[@type='text']"/>
- </td>
- </xsl:when>
- <xsl:otherwise>
- <td>
- <xsl:value-of select="writer/personTerm[@type='text']"/>
- </td>
- </xsl:otherwise>
- </xsl:choose>
- <td>
- <xsl:apply-templates select="screenplay"/>
- </td>
- <td>
- <xsl:apply-templates select="source"/>
- </td>
- <td>
- <xsl:value-of select="./language/languageTerm[@type='text']"/>
- </td>
- <td>
- <xsl:value-of select="./year"/>
- </td>
- <td>
- <xsl:apply-templates select="callNumber"/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- </body>
- </html>
- </xsl:template>
- <xsl:template match="title">
- <xsl:if test="./nonSort">
- <xsl:value-of select="./nonSort"/>
- <xsl:text> </xsl:text>
- </xsl:if>
- <xsl:value-of select="./titleSort"/>
- </xsl:template>
- <xsl:template name="recursive">
- <xsl:param name="number"/>
- <xsl:if test="$number > 1">
- <xsl:value-of select="writer[$number]/personTerm[@type='text']"/>
- <xsl:text> / </xsl:text>
- <xsl:call-template name="recursive">
- <xsl:with-param name="number" select="$number - 1"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:template>
- <xsl:template name="recursiveGenre">
- <xsl:param name="numberG"/>
- <xsl:if test="$numberG > 1">
- <xsl:value-of select="genre[$numberG]"/>
- <xsl:text> / </xsl:text>
- <xsl:call-template name="recursiveGenre">
- <xsl:with-param name="numberG" select="$numberG - 1"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:template>
- <xsl:template match="screenplay | source | callNumber">
- <a>
- <xsl:attribute name="href">
- <xsl:value-of select="./@href"/>
- </xsl:attribute>
- <xsl:value-of select="."/>
- </a>
- </xsl:template>
- </xsl:stylesheet>
- <table>
- <tr>
- <th>Genre</th>
- <th>Title</th>
- <th>Director</th>
- <th>Writer</th>
- <th>Screenplay</th>
- <th>Source</th>
- <th>Language</th>
- <th>Year</th>
- <th>Call Number</th>
- </tr>
- <tr><td>Action and Adventure</td>
- <td>Some Action/Comedy Title</td>
- ...
- </tr>
- <tr><td>Action and Adventure</td>
- <td>Some Action/Comedy Title - The Return</td>
- ...
- </tr>
- <tr><td>Action and Adventure</td>
- <td>Revenge of the Action/Comedy Title</td>
- ...
- </tr>
- <tr><td>Comedy</td>
- <td>Some Action/Comedy Title</td>
- ...
- <tr><td>Comedy</td>
- <td>Some Action/Comedy Title - The Return</td>
- </tr>
- <tr><td>Comedy</td>
- <td>Revenge of the Action/Comedy Title</td>
- ...
- </tr>
- </table>
- <xsl:key name="genre" match="genre" use="." />
- <xsl:key name="language" match="language" use="languageTerm[@type='text']" />
- <xsl:key name="languageTerm" match="languageTerm[@type='text']" use="." />
- <xsl:param name="groupBy" select="'genre'" />
- <xsl:apply-templates select="movie//*[local-name() = $groupBy]
- [generate-id() = generate-id(key($groupBy, .)[1])]" />
- <xsl:apply-templates select="key($groupBy, .)/ancestor::movie" />
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
- <xsl:output indent="yes"/>
- <xsl:output method="html" indent="yes" />
- <xsl:key name="genre" match="genre" use="." />
- <xsl:key name="languageTerm" match="languageTerm[@type='text']" use="." />
- <xsl:param name="groupBy" select="'genre'" />
- <xsl:template match="/*">
- <xsl:apply-templates select="movie//*[local-name() = $groupBy][generate-id() = generate-id(key($groupBy, .)[1])]" />
- </xsl:template>
- <xsl:template match="movie//*">
- <h1><xsl:value-of select="." /></h1>
- <ul>
- <xsl:apply-templates select="key($groupBy, .)/ancestor::movie" />
- </ul>
- </xsl:template>
- <xsl:template match="movie">
- <li><xsl:value-of select="title" /></li>
- </xsl:template>
- </xsl:stylesheet>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement