1<xsl:transform 2 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 3 version="1.0" 4> 5 6 <!-- Test FileName: mk036.xsl --> 7 <!-- Source Attribution: 8 This test was written by Michael Kay and is taken from 9 'XSLT Programmer's Reference' published by Wrox Press Limited in 2000; 10 ISBN 1-861003-12-9; copyright Wrox Press Limited 2000; all rights reserved. 11 Now updated in the second edition (ISBN 1861005067), http://www.wrox.com. 12 No part of this book may be reproduced, stored in a retrieval system or 13 transmitted in any form or by any means - electronic, electrostatic, mechanical, 14 photocopying, recording or otherwise - without the prior written permission of 15 the publisher, except in the case of brief quotations embodied in critical articles or reviews. 16 --> 17 <!-- Example: booklist.xml, list-books.xsl --> 18 <!-- Chapter/Page: 4-438 --> 19 <!-- Purpose: Counting distinct values (current function) --> 20 21<xsl:template match="/"> 22 <html><body> 23 <xsl:variable name="all-books" select="//book"/> 24 <xsl:for-each select="$all-books"> 25 <h1><xsl:value-of select="title"/></h1> 26 <p><i>by </i><xsl:value-of select="author"/> 27 <xsl:if test="count(author)!=1"> and others</xsl:if> 28 </p> 29 <xsl:variable name="others" 30 select="$all-books[./@category=current()/@category and 31 generate-id(.)!=generate-id(current())]"/> 32 <xsl:if test="$others"> 33 <p>Other books in this category:</p><ul> 34 <xsl:for-each select="$others"> 35 <li><xsl:value-of select="title"/></li> 36 </xsl:for-each> 37 </ul> 38 </xsl:if> 39 </xsl:for-each> 40 </body></html> 41</xsl:template> 42 43 <!-- 44 * Licensed to the Apache Software Foundation (ASF) under one 45 * or more contributor license agreements. See the NOTICE file 46 * distributed with this work for additional information 47 * regarding copyright ownership. The ASF licenses this file 48 * to you under the Apache License, Version 2.0 (the "License"); 49 * you may not use this file except in compliance with the License. 50 * You may obtain a copy of the License at 51 * 52 * http://www.apache.org/licenses/LICENSE-2.0 53 * 54 * Unless required by applicable law or agreed to in writing, software 55 * distributed under the License is distributed on an "AS IS" BASIS, 56 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 57 * See the License for the specific language governing permissions and 58 * limitations under the License. 59 --> 60 61</xsl:transform> 62