xsl-list
[Top] [All Lists]

Re: Annoying XSLT code

2005-08-18 12:07:55
At 08:35 AM 8/18/2005, David wrote:
> The first is selecting something using a variable and then applying
> templates to that variable, eg:
>
> <xsl:apply-templates select="$sections/section"/>

Why is this annoying? (I do it all the time:-) if the xpath to select
$sections is big and complicated and you need to query into it multiple
times then you either need to use a variable, or trust your system's
optimiser to implictly cache the result of the expression the first time
you use it.

Not only that, but it's a useful way to work around bugs in some widely deployed engines, which can have a hard time with gnarly XPaths but do okay when their constituent parts are bound to variables.

I agree that sometimes this can be overused and that tracking variable declarations across miles of files is no fun, but I also agree with David that it's a useful technique that can contribute to good code. A balance must be struck. Documenting your code (with comments if necessary) can also help the general problem of code opacity.

Cheers,
Wendell


======================================================================
Wendell Piez                            
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


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