On Nov 16, 2017, at 1:56 PM, Brian Sheppard <brian.shepp...@wisc.edu> wrote:
> Yeah, those affiliations really want to be within the person element, but ... Yes, Brian’s solution works quite well: <xsl:call-template name="affiliation"> <xsl:with-param name="person"> <xsl:value-of select="."/> </xsl:with-param> </xsl:call-template> <xsl:text>	</xsl:text> <xsl:template name="affiliation"> <xsl:param name="person"/> <xsl:for-each select="following-sibling::affiliation[preceding-sibling::person[1] = $person]"> <xsl:value-of select="normalize-space(.)"/> <xsl:if test="position() != last()"> <xsl:value-of select="'|'"/> </xsl:if> </xsl:for-each> </xsl:template> And I’m seriously thinking about changing my DTD so affiliations reside inside a person element. Thank you. code4lib++ — Eric Morgan