Hello all -
I'm in the middle of a big project and I'm getting tripped up by something
that seems like it should be fairly simple....
I am working with an XML file of news stories that includes a list of
keywords to use as links, essentially in a format like:
<NEWS>
<STORY>
<FULLTEXT>Article text</FULLTEXT>
<LINK>Term 1</LINK>
<LINK>Term 2</LINK>
<LINK>Term 3</LINK>
</STORY>
<STORY>
...
</STORY>
</NEWS>
I am trying to recursively add links in around the first occurrence in
FULLTEXT of each keyword specified in the LINKs. Here's the XSL template
I've written so far:
<xsl:template name="TextLinker">
<xsl:param name="LinkNum" select="count(LINK) + 1"/>
<xsl:choose>
<xsl:when test="$LinkNum > count(LINK)">
<xsl:value-of select="FULLTEXT"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="LinkedText">
<xsl:call-template name="TextLinker">
<xsl:with-param name="LinkNum" select="$LinkNum + 1"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="LinkText"><xsl:value-of
select="LINK[$LinkNum]"/></xsl:variable>
<xsl:variable name="PreLinkText"
select="substring-before($LinkedText, $LinkText)"/>
<xsl:variable name="PostLinkText"
select="substring-after($LinkedText, $LinkText)"/>
<xsl:value-of select="$PreLinkText"/>
<b><a
href="news.asp?mode=search&terms={$LinkText}"><xsl:value-of
select="$LinkText"/></a></b>
<xsl:value-of select="$PostLinkText"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
And I call that when I need it by using:
<xsl:call-template name="TextLinker">
<xsl:with-param name="LinkNum" select="1"/>
</xsl:call-template>
The end result is that I get back the FULLTEXT with the first LINK keyword
linked properly but with the remaining LINK keywords unchanged. Through
testing of this I know it's looping correctly, it's just seems to end up
returning the untreated FULLTEXT each recursion until it finally resolves
and deals just with LINK[1], thus why the first keyword is linked properly
but the others aren't.
I'm sure it must be something obvious I'm missing.
Please help!
Thanks!
-Matthew
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--