[xsl] need xsl template for this xml and html

Subject: [xsl] need xsl template for this xml and html
From: Frank Brooks <fbrooks@xxxxxxxxx>
Date: Wed, 25 May 2011 16:54:20 +0100
Hi,

I'm new to XSL.  Currently I'm using XSLT 1.0 parsing tools.

I'm integrating content from a 3rd party, where part of the XML looks
like this (i've modified the content from the original):

<item>
<ref id="ireland">
<b>Republic of Ireland</b>
</ref>: is a country with a population of 5 million ...
</item>

The resultant HTML that I WANT will look something like this:

<li><a href="country.aspx?id=ireland">Republic of Ireland</a>: is a
country with a population of 5 million ...</li>

However, no matter what I try, the closest I can come up with is this:

<li><a href="country.aspx?id=ireland">Republic of Ireland</a>:
Republic of Ireland is a country with a population of 5 million
...</li>

(notice the double "Republic of Ireland" in there).  The question is
how do I prevent the text inside the <ref> tags been repeated, but yet
get the value of the rest of the text outside the <ref> tags ...

These are the templates that I am using and / or have tried:

<xsl:template match="item"><li><xsl:apply-templates select="ref"
mode="include" /><xsl:value-of select="."/></li></xsl:template>
<xsl:template match="*/ref" mode="include">
<a href="country.aspx?id={@id}"><xsl:value-of select="."/></a>
</xsl:template>
<xsl:template match="*/ref" mode="exclude"></xsl:template>
<xsl:template match="*/ref"></xsl:template>

Hope this makes sense and thank you in advance,

Frank

Current Thread