[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: making grandparents of grandchildren
> What I tried for some time to achieve in vain, is group paintings > belonging to same owners under their names sorted and add author names > to each picture in the list. Would really appreciate your help (or our > exhibition in Madrid will have to be postponed :). How about <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" encoding="ISO-8859-1" /> <xsl:key name="owner" match="owner" use="." /> <xsl:key name="picture" match="picture" use="owner" /> <!-- this should match the parent of authorgroup elements--> <xsl:template match="foo"> <!-- get unique owners --> <xsl:apply-templates select="authorgroup/picture/owner[generate-id(.) = generate-id(key('owner', .))]" mode="sort"> <xsl:sort select="." /> </xsl:apply-templates> </xsl:template> <xsl:template match="owner" mode="sort"> <ownergroup> <name> <xsl:value-of select="." /> </name> <!-- list pictures by this owner--> <xsl:apply-templates select="key('picture', .)" /> </ownergroup> </xsl:template> <xsl:template match="picture"> <xsl:copy> <author> <xsl:value-of select="ancestor::authorgroup[1]/name" /> </author> <xsl:apply-templates select="*[not(self::owner)]" /> </xsl:copy> </xsl:template> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet> It's the fourth Monday of this week, so I wouldn't be surprised if it didn't work - Anyhow, it should generate <ownergroup> <name></name> <picture> <author></author> <title></title> <inv><inv> </picture> <picture> ... </picture> </ownergroup> <ownergroup> ... </ownergroup> Santtu XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|