xsl-list
[Top] [All Lists]

Re: Replacing many attributes

2003-04-02 13:46:43
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[(_at_)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