xsl-list
[Top] [All Lists]

Re: Modify acronym replace "function"

2005-11-24 01:28:51
I realised that it might be middle of the night :o)

I read your post at biglist but i can't get my code working.

Do you see what i'm doing wrong?

That's my code:


...
<xsl:template name="replace-acronyms">
  <xsl:param name="acronyms"
select="document('')/xsl:stylesheet/xsl:template[(_at_)name='acro']/acronyms" />
  <xsl:param name="string" />
  -- <xsl:copy-of select="$acronyms"/> -- <!-- Test -->
  <xsl:choose>
    <xsl:when test="not($acronyms)">
      <xsl:value-of select="$string" />
    </xsl:when>
    <xsl:when test="not(string($string))" />
    <xsl:otherwise>
      <xsl:variable name="acronym" select="$acronyms[1]/@acronym" />
      <xsl:choose>
        <xsl:when test="contains($string, $acronym)">
          <xsl:variable name="before" select="substring-before($string,
$acronym)" />
          <xsl:variable name="after" select="substring-after($string,
$acronym)" />
          <xsl:call-template name="replace-acronyms">
            <xsl:with-param name="string" select="$before" />
            <xsl:with-param name="acronyms" select="$acronyms[position()
 1]" />
          </xsl:call-template>
          <acronym title="{$acronyms[1]}">
            <xsl:value-of select="$acronym" />
          </acronym>
          <xsl:call-template name="replace-acronyms">
            <xsl:with-param name="string" select="$after" />
            <xsl:with-param name="acronyms" select="$acronyms" />
          </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
          <xsl:call-template name="replace-acronyms">
            <xsl:with-param name="string" select="$string" />
            <xsl:with-param name="acronyms" select="$acronyms[position()
 1]" />
          </xsl:call-template>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<xsl:template name="acro">
<acronyms>
        <acronym acronym="vorbedingung">PRECONDITION</acronym>
        <acronym acronym="Vorbedingung">PRECONDITION</acronym>
        <acronym acronym="VORBEDINGUNG">PRECONDITION</acronym>
        <acronym acronym="nachbedingung">POSTCONDITION</acronym>
        <acronym acronym="Nachbedingung">POSTCONDITION</acronym>
        <acronym acronym="NACHBEDINGUNG">POSTCONDITION</acronym>
        <acronym acronym="beschreibung">DESCRIPTION</acronym>
        <acronym acronym="Beschreibung">DESCRIPTION</acronym>
        <acronym acronym="BESCHREIBUNG">DESCRIPTION</acronym>
</acronyms>
</xsl:template>
...

Ragulf Pickaxe schrieb:
Good morning to you, as well Sven (you do realise that it might be
evening or in the middle of the night elsewhere :-)

If you want to hold the variable in the xsl document, then you will
have to do something like this:

At the top level:

<acronyms>
      <acronym acronym="vorbedingung">PRECONDITION</acronym>
      <acronym acronym="Vorbedingung">PRECONDITION</acronym>
      <acronym acronym="VORBEDINGUNG">PRECONDITION</acronym>
</acronyms>


Then have a variable (also top-level) like this:
<xsl:variable name="acronyms" select="document('')/xsl:stylesheet/acronyms"/>

This will select the acronyms element, and you will be able to
navigate through its children.

You can also take a look at the thread starting at this point:
http://www.biglist.com/lists/xsl-list/archives/200210/msg01196.html

Regards,
Ragulf Pickaxe :-)

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




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