Re: [xsl] Is it possible to rewrite part of an attribute value with XSL?

Subject: Re: [xsl] Is it possible to rewrite part of an attribute value with XSL?
From: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx>
Date: Fri, 3 Jul 2009 19:09:33 +0200
> ...
> > Is that possible with XSL?
>
> With XSLT 2.0 you could do
>    <xsl:attribute name="style" select="replace(@style,
> 'fill:none;stroke:black;', '')"/>

And with XSLT 1.0 processor supporting
  xmlns:regexp="http://exslt.org/regular-expressions";

you can do:
  <xsl:attribute name="style" select="regexp:replace(@style,
'fill:none;stroke:black;', 'g', '')"/>


This is similar to "../200903/msg00447.html".


Mit besten Gr|_en / Best wishes,

Hermann Stamm-Wilbrandt
Developer, XML Compiler
WebSphere DataPower SOA Appliances
----------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschdftsf|hrung: Erich Baier
Sitz der Gesellschaft: Bvblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294



             Martin Honnen
             <Martin.Honnen@gm
             x.de>                                                      To
                                       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
             07/03/2009 06:33                                           cc
             PM
                                                                   Subject
                                       Re: [xsl] Is it possible to rewrite
             Please respond to         part of an attribute value with
             xsl-list@xxxxxxxx         XSL?
              lberrytech.com









Jonas Voss wrote:

> Some elements in the svg has a style attribute, which looks like this:
>
> <path style="fill:none;stroke:black;stroke-width:1.55"/>
>
> I am looking for a way to remove the "fill:none;stroke:black" of the
above,
> but to keep the "stroke-width:155" part of the attribute.
>
> So far, all I've been able to do was to overwrite the style attribute of
the
> element altogether with the following XSL:
>
> <xsl:template match="svg:path">
>     <xsl:element name="path">
>         <xsl:apply-templates select="@*"/>
>         <xsl:attribute name="style"></xsl:attribute>
>     </xsl:element>
> </xsl:template>
>
> This obviously leaves the style attribute empty (style=""), but I would
like
> to maintain the "stroke-width:1.55" value, and strike the rest of the
style
> attribute.
>
> Is that possible with XSL?

With XSLT 2.0 you could do
   <xsl:attribute name="style" select="replace(@style,
'fill:none;stroke:black;', '')"/>


--

             Martin Honnen
             http://msmvps.com/blogs/martin_honnen/

Current Thread