xsl-list
[Top] [All Lists]

Re: [xsl] Updating Attribute Values

2013-08-16 08:28:23
Thank you everyone for your comments. They gave me the clue I needed.
The below code is working for my situation, which transforms an
existing XML by updating dao[@href].

<xsl:template match="dao[@href]">
            <xsl:copy>
                <xsl:copy-of select="@*"/>
                <xsl:apply-templates />
                <xsl:attribute name="href">
                    <!-- do stuff -->
                </xsl:attribute>
            </xsl:copy>
    </xsl:template>

Nathan

On Thu, Aug 15, 2013 at 11:25 AM, David Carlisle 
<davidc(_at_)nag(_dot_)co(_dot_)uk> wrote:
On 15/08/2013 15:41, Nathan Tallman wrote:

I'd like to change the values of attribute "href", whenever it appears
inside a "dao" element. From what I can tell, my template is correct,
however when ever I stick anything inside xsl:attribute (replace <!--
do stuff here -->, nothing happens during the transformation. Am I
missing something?

     <xsl:template match="@href[parent::dao]">
         <xsl:attribute name="href">
             <!-- do stuff here -->
         </xsl:attribute>
     </xsl:template>

I'm using XSLT 2.0, Saxon 6.5.5.

Thanks,
Nathan



In addition to the other comments re XSLT version and namespaces, a template
matching an attribute only does anything if you apply templates to that
attribute. The default processing does not do that:

<xsl:template match="dao">
... stuff..
<xsl:apply-templates/>
..
</xsl:template>

would apply templates to child nodes of <dao> but not to its attributes.

David


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