xsl-list
[Top] [All Lists]

Re: key using a number of siblings

2002-11-13 15:58:59
Franklin,

At 05:13 PM 11/13/2002, you wrote:
I have data that looks like

...
<w>a</w>
<w><f type="completion">b</f></w>
<w><f type="completion">c</f></w>
...

I am doing processing for each "word", and am attempting to do this
using a key.  The key

<xsl:key name="words" match="w[not(f/@type='completion')]" use="normalize-space(text())"/>

manages to match what I want, I believe, but instead of

text(), I really want to concatenate text() with all following
siblings that are completions, such that for the example above, I get
the string

"a+b+c"

Oo.

Is there an elegant way to do this?

The cleanest approach to this I can think of is to pass twice, first to process your <w> combinations into their full "words", the second to key them and do whatever you're doing. This could be done in a way that wouldn't mess too much with the data if the first pass worked to introduce a wrapper, so

<w>a</w>
<w><f type="completion">b</f></w>
<w><f type="completion">c</f></w>

would appear as

<word key="a+b+c">
  <w>a</w>
  <w><f type="completion">b</f></w>
  <w><f type="completion">c</f></w>
</word>

This would require a "levitation" algorithm (i.e. a grouping to unflatten the hierarchy) to collect the <w> elements properly.

Your problem as stated must be the Puzzler of the Week; I wonder if someone can come up with something (but methinks it can't be done).

I hope this helps,
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



<Prev in Thread] Current Thread [Next in Thread>