[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] moving an element and then converting it to an attribute


Subject: Re: [xsl] moving an element and then converting it to an attribute
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Fri, 17 Aug 2012 17:29:55 -0400

Michael,

On 8/17/2012 3:11 PM, Michael M|ller-Hillebrand wrote:
..//image-size[1]

expands to

parent::node()/descendant-or-self::node()/child::image-size[position() = 1]

which might result in a sequence of more than one element.


But it might be good to learn

normalize-space(../descendant::image-size[1])

in case you're ever running under XSLT 2.0 ...

... at least as long as you agree that a little paranoia never hurt ...

Wendell,


I dont see this as paranoia, because such stuff happens!

Yes it does. (Who said paranoiacs are always wrong? :-)


More seriously, one does have to consider extraneous circumstances here, beyond the mere question of the semantics of the code.

Such as: do you plan to run this code only once, or how often? How fault tolerant does it have to be?

How well controlled is the input? Are there any constraints to which it is known to conform (such as only one image-size element allowed in one place), for example by virtue of schema validation, that help to manage this issue? If so, this amounts to water-cooler talk among XSLT developers.

(Michael I know you know all this.)

Do you agree that another option to force the resulting sequence to have only one element would be

normalize-space((..//image-size)[1])

Yes, that's the more common solution, I think since we thought of it first.


But I agree that the use of descendant:: is much clearer, especially to people who (have to) read this bit of code later.

I think so too. :-)


Cheers,
Wendell

======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
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
======================================================================


Current Thread
Keywords