This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: cross document id idref pair checks
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] cross document id idref pair checks
- From: David Carlisle <davidc at nag dot co dot uk>
- Date: Tue, 9 Jan 2001 16:45:51 GMT
- References: <9B66BBD37D5DD411B8CE00508B69700F4EFF98@pborolocal.rnib.org.uk>
- Reply-To: xsl-list at lists dot mulberrytech dot com
Oh well if you are not using DTD defined ids then you are not subject to
the "same document" constraint so you don't need the for-each to change
the current document.
Also it's always better to use self:: if possible rather than name()
<xsl:variable name="ref" select="substring-after(@href,'#')"/>
<xsl:variable name="smil-file-el"
select="document(@href)/smil/body//*[@id=$ref]"/>
<xsl:variable name="lineNo" select="saxon:lineNumber()"/>
<xsl:for-each select="$smil-file-el">
<xsl:if test="not(name()='par' or name()='text')">
TN 76: Line <xsl:value-of select="$lineNo"/>. <xsl:value-of
select="$msg/TN76"/></xsl:if>
</xsl:for-each>
is probably (untested)
<xsl:if test=
"not(document(@href)/smil/body//*
[@id="substring-after(current()/@href,'#')]
[self::par or self::text]')">
TN 76: Line <xsl:value-of select="saxon:lineNumber()"/>. <xsl:value-of
select="$msg/TN76"/>
David
_____________________________________________________________________
This message has been checked for all known viruses by Star Internet delivered
through the MessageLabs Virus Control Centre. For further information visit
http://www.star.net.uk/stats.asp
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list