xsl-list
[Top] [All Lists]

Re: Insert a tag inside a text

2005-09-12 08:01:17
2005/9/12, Joris Gillis <roac(_at_)pandora(_dot_)be>:
Hi,
On Mon, 12 Sep 2005 15:10:46 +0200, knocte <knocte(_at_)gmail(_dot_)com> 
wrote:

I am trying to figure out if it is possible to make a XSLT
transformation which could receive this XML file:

<page>
<p>
  <label for="txtElement" accesskey="a">
    Name:
  </label>
  <input type="text" id="txtElement" />
</p>
</page>


And transform it to the following, inserting a <span> tag inside a
specific position of a string:

<html>
<head><title></title></head>
<body>
<p>
  <label for="txtElement" accesskey="a">
    N<span class="accesskey">a</span>me:
  </label>
  <input type="text" id="txtElement" />
</p>
</body>
</html>

Is this possible?

Absolutely,

Here's a working example solution:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:variable name="version" select="/xsl:stylesheet/@version"/>

<xsl:template match="/">
<html>
        <head><title></title></head>
        <xsl:apply-templates/>
</html>
</xsl:template>

<xsl:template match="page">
<body><xsl:apply-templates/></body>
</xsl:template>

<xsl:template match="node()|@*">
        <xsl:copy>
                <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
</xsl:template>

<xsl:template match="*[(_at_)accesskey]/text()[contains(.,../@accesskey)]">
        <xsl:value-of select="substring-before(.,../@accesskey)"/>
        <span class="accesskey"><xsl:value-of select="../@accesskey"/></span>
        <xsl:value-of select="substring-after(.,../@accesskey)"/>
</xsl:template>

</xsl:stylesheet>


Thanks!! It works flawlessly.

  Andrew        [  knocte  ]

--

--~------------------------------------------------------------------
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>