No matter how I adjust the argument on the template below, I get the
same error. So I don't understand what's going on.
so you need to fall back on teh well known debugging technique of
adding priint statements (or using a real debugger)
You think that here:
<xsl:template match="mods:titleInfo" mode="title-before">
<xsl:if test="mods:reftype(parent::mods:relatedItem) = 'chapter'">
<xsl:text>"</xsl:text>
</xsl:if>
</xsl:template>
the parent has to be mods:relatedItem, actually igf it was always that
you could just use
"mods:reftype(..) = 'chapter'"
the only reason ever to use parent::foo rather than .. is to __allow__
the geneartion of an empty node set (sequence in 2.0) if teh parent is
of a different type.
However teh system doesn't agree with you, there's no point in asking us
to guess, just find out what it is:
<xsl:template match="mods:titleInfo" mode="title-before">
<xsl:choose>
<xsl:when test="not(parent::mods:relatedItem)">
<xsl:message>
parent is [[<xsl:value-of select="name(..)"/>]]
<xsl:message>
</xsl:when>
<xsl:otherwise>
<xsl:if test="mods:reftype(parent::mods:relatedItem) = 'chapter'">
<xsl:text>"</xsl:text>
</xsl:if>
</xsl:otherwise>
<xsl:choose>
</xsl:template>
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________