xsl-list
[Top] [All Lists]

RE: Copying an entire NodeSet with modified selected attribute values

2005-06-23 08:33:52


Given SVG:

<svg width="100%" height="100%" viewBox="-24 -21 1296 1135" 
preserveAspectRatio="xMinYMin meet" kerning="0" 
xml:space="preserve" 
xmlns:xlink="http://www.w3.org/1999/xlink"; style="stroke: 
black; fill: none;">
      <g id="122" type="443" node="Yes">
      ...
      </g>
</svg>

I would like to keep/copy the entire SVG Structure, but just 
change specific attribute values.

Example :clone it, except that : (...) height="NEWVALUE" (...)

Could it be possible to simple use xsl:copy-of function with 
exceptions (IFs)?

You could use:

<xsl:template match="svg">
  <xsl:copy>
    <xsl:copy-of select="@*[not(local-name() = 'height')]"/>
    <xsl:attribute name="height">NEWVALUE</xsl:attribute>
    <xsl:copy-of select="*"/>
  </xsl:copy>
</xsl:template> 

Which copies the element, all it's attributes apart from 'height',
creates a new height attribute with a value of 'NEWVALUE', and then
copies all it's children.  Maybe use apply-templates there instead of
copy-of select if it's used as part of an identity transform.

Cheers
andrew

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