xsl-list
[Top] [All Lists]

Re: template match : node-set paring through multiple-axis relationsh ips

2003-06-04 08:55:18

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0"



<xsl:template match="/">

<xsl:for-each select="//b">
<xsl:variable name="dst" 
select="id(/root/c/c1[(_at_)role='src'][(_at_)target=current()/@id]/../c1[(_at_)role='dst']/@target)"/>
<xsl:choose>
<xsl:when test="$dst and count($dst/..|../..)=1">
matched <xsl:value-of select="@id"/> 
<xsl:text/> (uncle is <xsl:value-of select="$dst/@id"/>)<xsl:text/>
</xsl:when>
<xsl:otherwise>
not matched <xsl:value-of select="@id"/> 
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>


</xsl:template>


produces

$ saxon b.xml b.xsl
<?xml version="1.0" encoding="utf-8"?>
not matched _10
matched _11 (uncle is _10)
not matched _12

which is I think what you want.

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
________________________________________________________________________

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>
  • Re: template match : node-set paring through multiple-axis relationsh ips, David Carlisle <=