[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Adding a class to HTML's class attribute

Subject: Re: Adding a class to HTML's class attribute
From: "Abel Braaksma (online)" <abel.online@xxxxxxxxx>
Date: Wed, 8 Aug 2007 20:05:53 +0200 (CEST)
Re:  Adding a class to HTML's class attribute
> Hello,
>
> I have a HTML which transformed with XSL. It contains tags like these
>
> 1. <li class="foo"></li>
> 2. <li></li>
>
> I want to add a certain class to the attributes:
>
> 1. <li class="foo bar"></li>
> 2. <li class="bar"></li>
>
> Anybody with a smart solution? The only (dump but simple) solution I
> have in my mind is to use <xsl:choose> to handle the different cases.
>

No, xsl:choose is almost never a good solution. Here's one approach, which is
usually the best if input and output look alike: the copy idiom:

<xsl:template match="node() |@*">
   <xsl:copy>
      <xsl:apply-templates select="node() | @*">
   </xsl:copy>
</xsl:template>

<xsl:template match="li/@class">
   <xsl:attribute name="class">
      <xsl:value-of select=".">
      <xsl:text> bar</xsl:text>
   </xsl:attribute>
</xsl:template>


That will do what you want.

Cheers,
-- Abel Braaksma


PS: whenever you are trying a solution and you find yourself doing
'traditional' style programming from you Perl/C++/PHP/VB/Java days (i.e.:
imperative programming) with things like many xsl:if / xsl:choose /
xsl:for-each to instruct your processor, you should try to turn the logic
around, like in the example above (define matching templates and let the
processor do the math for you instead of the other way around)

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.