You are making the templat ematch on related-article and then trying to
group all the related-article children of this (related-artcicle)
element, but there are none, so basically you just want to change to
match article-meta instead. Also i changed your input example to be
well formed and have some elements other than original-article types at
this level just to show that these are not grouped, whereas the original
articles are.
I also removed the character map stuff as I didn't have it to hand at
the right realtive location and they are not relevant to the problem
(although actually they began life on this machine, if as I guess they
are my map files you are using?)
David
<article><front><article-meta>
[...other related-article siblings...]
<related-article related-article-type="original-article">
<person-group person-group-type="author">
<name>
<surname>Surname1</surname>
<given-names>GivenName1</given-names>
</name>
</person-group>
</related-article>
<related-article related-article-type="original-article">
<person-group person-group-type="author">
<name>
<surname>Surname2</surname>
<given-names>GivenName2</given-names>
</name>
</person-group>
</related-article>
<related-article related-article-type="original-article">
<person-group person-group-type="author">
<name>
<surname>Surname3</surname>
<given-names>GivenName3</given-names>
</name>
</person-group>
<article-title>Blah</article-title>
<source>etc.</source>
</related-article>
<related-article>[...other related-article siblings...]</related-article>
<foo/>
</article-meta></front></article>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output method="xml" doctype-system="archivearticle.dtd"
encoding="utf-8" indent="no" />
<xsl:template match="article-meta">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:for-each-group select="*"
group-adjacent="exists(self::related-article[(_at_)related-article-type='original-article'])">
<xsl:choose>
<xsl:when test="current-grouping-key()">
<related-article
related-article-type="original-article">
<xsl:copy-of select="current-group()"/>
</related-article>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="current-group()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy copy-namespaces="no" inherit-namespaces="no">
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
$ saxon9 art.xml art.xsl
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article
SYSTEM "archivearticle.dtd">
<article><front><article-meta><related-article
related-article-type="original-article"><related-article
related-article-type="original-article">
<person-group person-group-type="author">
<name>
<surname>Surname1</surname>
<given-names>GivenName1</given-names>
</name>
</person-group>
</related-article><related-article related-article-type="original-article">
<person-group person-group-type="author">
<name>
<surname>Surname2</surname>
<given-names>GivenName2</given-names>
</name>
</person-group>
</related-article><related-article related-article-type="original-article">
<person-group person-group-type="author">
<name>
<surname>Surname3</surname>
<given-names>GivenName3</given-names>
</name>
</person-group>
<article-title>Blah</article-title>
<source>etc.</source>
</related-article></related-article><related-article>[...other related-article
siblings...]</related-article><foo/></article-meta></front></article>
________________________________________________________________________
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>
--~--