|
Subject: RE: [xsl] Grouping over multiple files From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sat, 14 Jan 2006 21:35:29 -0000 |
> Florent, would you be kind enough to explain the function.
Actually, I think it should be using the operator "is" rather than "=". But
it's trying to return one of the strings "north", "south", etc, depending on
which of the four global variables is the root of the tree containing the
parameter $node.
I would personally be inclined to write it as
<xsl:function name="k:get-source" as="xs:string">
<xsl:param name="node" as="node()"/>
<xsl:variable name="root" as="node()" select="root($node)"/>
<xsl:sequence select='
for $i in 1 to 4 return
if (($north, $south, $east, $west)[$i] is $root)
then ("north", "south", "east", "west")[$i]
else ()'/>
</xsl:function>
>
> > <xsl:function name="k:get-source" as="xs:string">
> > <xsl:param name="node" as="node()"/>
> > <xsl:variable name="root" as="node()"
> > select="root($node)"/>
> > <xsl:choose>
> > <xsl:when test="$root = $north">
> > <xsl:text>north</xsl:text>
> > </xsl:when>
> > <xsl:when test="$root = $south">
> > <xsl:text>south</xsl:text>
> > </xsl:when>
> > <xsl:when test="$root = $east">
> > <xsl:text>east</xsl:text>
> > </xsl:when>
> > <xsl:when test="$root = $west">
> > <xsl:text>west</xsl:text>
> > </xsl:when>
> > <xsl:otherwise>
> > <xsl:message terminate="yes">
> > <xsl:text>Unjnown source!</xsl:text>
> > </xsl:message>
> > </xsl:otherwise>
> > </xsl:choose>
> > </xsl:function>
> >
>
>
> Thanks.
>
> --
> Kevin
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Grouping over multiple fi, Kevin Bird | Thread | RE: [xsl] Grouping over multiple fi, Florent Georges |
| RE: [xsl] Grouping over multiple fi, Kevin Bird | Date | RE: [xsl] Grouping over multiple fi, Florent Georges |
| Month |