Which is showing error at tokenize () function as "XPTY0004: A
sequence of more than one item is not allowed as the first argument of
tokenize()"
you could avoid that by applying tokenize to each item separately ie not
tokenize($aff,', ')
but
$aff/tokenize(.,', ')
(by the way it's safer to use ',\s+' rather than ', ' unless you know
your input is highly regular.)
However this can not work as you intend.
<xsl:for-each-group select="author" group-adjacent="$count">
variables hold values not expression fragments so $count (or any other
variable) would have the same value each time it is evaluated, so all
items will appear in the same group.
the group-aadjacent attribute needs to hold an expression that evaluates
to different values at group boundaries It could be inlined into teh
attribute, but here I suggest a function:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:f="data:,f"
exclude-result-prefixes="xs f">
<xsl:output indent="yes" encoding="US-ASCII"/>
<xsl:strip-space elements="*"/>
<xsl:key name="country" match="affiliation/textfn"
use="parent::affiliation/@id"/>
<xsl:template match="author-group">
<xsl:for-each-group select="author" group-adjacent="f:country(.)">
<xsl:apply-templates select="current-group()"/>
(<xsl:value-of select="current-grouping-key()"/>)
</xsl:for-each-group>
</xsl:template>
<xsl:template match="author">
<author><xsl:value-of select="given-name,surname"/></author>
</xsl:template>
<xsl:function name="f:country" as="xs:string">
<xsl:param name="a" as="element()"/>
<xsl:sequence select="key('country',
$a/cross-ref/@refid,root($a))/tokenize(.,',\s+')[last()]"/>
</xsl:function>
</xsl:stylesheet>
$ saxon9 ag.xml ag.xsl
<?xml version="1.0" encoding="US-ASCII"?>
<author>JungKun Park</author>
<author>HoEun Chung</author>
<author>Weon Sang Yoo</author>
(USA)
________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--