Having problems with variables, applying templates and parsing
strings. Been working on it all day and can't seem to wrap my mind
around it.
Here is my simplified xml:
<definition>
<term>recognized</term>
<def>, under the <em>Company Act</em></def>
</definition>
What I need to do is substring the def information when it starts with
a comma, ie:
with comma
<p class="def">"recognized", under the <em>Company Act</em></p>
without comma
<p class="def">"recognized" under the <em>Company Act</em></p>
Ok, there's the background. I'm having problems because I'm using a
variable to parse out the unwanted space in the with comma example
above, then to get the variable I use a value-of statement which
promptly drops the <em> tags. Any suggestions or advive would be
appreciated.
Here's my simplified xsl:
<!-- Defintion -->
<xsl:template match="definition" mode="contentsection">
<p class="def">
<xsl:choose>
<xsl:when test="substring(def, 1, 1)=','">
<strong>"<xsl:apply-templates
select="term"/>"</strong>, <xsl:variable name="uncommadef">
<xsl:apply-templates select="def"/>
</xsl:variable>
<!-- Problem is here -->
<xsl:value-of select="substring($uncommadef, 2)"/>
</xsl:when>
<xsl:otherwise>
<strong>"<xsl:apply-templates
select="term"/>"</strong> <xsl:apply-templates select="def"/>
</xsl:otherwise>
</xsl:choose>
</p>
</xsl:template>
<xsl:template match="term">
<xsl:apply-templates
select="text()|strong|em|sup|sub|u|insert|br|eacute"/>
</xsl:template>
<xsl:template match="def">
<xsl:apply-templates
select="text()|strong|em|sup|sub|u|insert|br|eacute"/>
</xsl:template>
<!-- End of Definition -->
--~------------------------------------------------------------------
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>
--~--