[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Replacing many attributes


Subject: Re: [xsl] Replacing many attributes
From: David Pratt <prattda@xxxxxxxxxxxxxxx>
Date: Wed, 2 Apr 2003 14:46:43 -0600

This is something that is routine so appreciate a more elegant solution. I'll give this a try.
Many thanks J.


Regards
Dave

On Wednesday, April 2, 2003, at 12:23 PM, J.Pietschmann wrote:

David Pratt wrote:
I have about a hundred attributes to replace in docs and trying to find a
more efficient way of doing this. I am currently doing this below but there must be a better way.
<xsl:template match="para/@meta[.='cc_gen_desc']">
<xsl:attribute name="meta">description</xsl:attribute>
</xsl:template>
...

If this is an one-shot task I'd investigate a stream editor first.
For an XML solution, you can define a file with replacements:

<replacements>
  <replace from="cc_gen_desc" to="description"/>
  ...
</replacements>

Use it as follows:
  <xsl:variable name="replacements"
    select="document('replacements.xml')/replacements"/>
  <xsl:template match="para/@meta">
    <xsl:variable name="replacement"
      select="$replacements/replace[@from=current()]"/>
    <xsl:choose>
      <xsl:when test="$replacement">
        <xsl:attribute name="meta">
           <xsl:value-of select="$replacement/@to"/>
        </xsl:attribute name="meta">
      </xsl:when>
      <xsl:otherwise>
        <xsl:copy-of select="."/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

Beware, untested.

J.Pietschmann


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list




XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords
xml