Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries [Thread Prev] >Thread Next - Re: Tracking "already-processed" elements Tracking "already-processed" elementsTo: NULL Date: 6/2/2004 1:43:00 PM I have a list L that contains values that are @name attribute values in
elements of the input document. In my application, I need to traverse L,
processing input document elements whose @name attribute values match items
from L. However, L doesn't contain all the names in the input document.
Therefore, when I'm finished traversing L, I need to walk the input document
to process all the elements that weren't processed during the traversal of
L. (There's a simplified example below my signature.)
I can think of two ways to approach this problem, but I'm not sure which is
a more elegant XSL answer (or even if a way I'm not considering would be a
smarter way to go):
a) Attach an @has-been-processed attribute to the input document elements as
they're processed during the pass through L. (Is it even possible to do this
in XSL?)
b) Whenever I process a set of elements in the input document, append those
elements' @id values in a separate data structure and then (somehow that I
have yet to figure out) add a predicate that says "...and the element's @id
value is not in the already-processed list."
Thank you very much for your advice.
Cary Millsap
Simplified example:
- L contains the names "a" and "b".
- Input document contains the following elements:
<thing name="a" .../>
<thing name="d" .../>
<thing name="a" .../>
Step 1: For each element in L, process the input document's elements with
that name. This pass will pick up the two 'a' elements. (I have figured out
already how to avoid emitting anything for 'b', since it is not represented
in the input document.)
Step 2: For the input document elements that are left over, process those
elements. This pass will pick up the 'd' element that was not addressed in
Step 1.
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
