<p>
<strong>Hobbies:</strong>
<a shape="rect" href="http://www.hobbies.com/fishing" title="Shark Hunting">Coral Bay</a>
fishing
</p>
I tried the following combinations to get the value 'fishing' without much luck:
<xsl:template match="ns:p[ns:strong='Hobbies:']">
<xsl:for-each select="text()[normalize-space() != '']">
<hobbies><xsl:value-of select="normalize-space()"/></hobbies>
</xsl:for-each>
</xsl:template>
This should work. But you said that <hobbies><xsl:value-of select="../ns:a"/></hobbies> works (starting from the <strong> element). I would expect that to return <hobbies>Coral Bay</hobbies>. Are you sure the input is what you say it is?