xsl-list
[Top] [All Lists]

Re: [xsl] targeting the last element in a node or consecutive elements

2007-01-04 12:21:36
Here is my logic so far to target everything in the node, and if it is 
a processing-instruction it should be processed only if something 
exists after it other than another processing-instruction.  What I have 
below does not work because I think it is looking for the second 
processing-instruction inside the first one rather than following it, 
but it is starting to feel like it is possible to put what I need in 
one instruction.

<xsl:apply-templates select="node()[not(self::processing-instruction()
[not(following::*[not(self::processing-instruction())])])]"/>

Warning: on line 58 of file:/C:/Documents%20and%
20Settings/egarrett/Desktop/Transforms%20R%20Us/saxon/xsl/X3B.xsl:
  The self axis will never select any element() nodes when starting at 
an
  processing-instruction() node

Any ideas?
----- Original Message -----
From: egarrett(_at_)cinci(_dot_)rr(_dot_)com
Date: Thursday, January 4, 2007 9:59 am
Subject: Re: [xsl] targeting the last element in a node or consecutive 
elements
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com

Yes, your example is correct.  I don't know if or how many PIs 
will 
occur at the end of the node.

P.S. I started a new post because they changed the 
requirements....   

----- Original Message -----
From: Abel Braaksma <abel(_dot_)online(_at_)xs4all(_dot_)nl>
Date: Thursday, January 4, 2007 9:53 am
Subject: Re: [xsl] targeting the last element in a node or 
consecutive 
elements
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com

Hi Emily,

This is a double post, you already opened this discussion under 
"suppressing only the last PI" (which differed in details, however).

If I may, it appears that you want to do this:

<somenode>
   <node1 />
   <?instr1?>
   <node2 />
   <?instr2?>
   <?instr3?>
</somenode>

1. Process node1, instr1, node2 etc
2. Do something before instr2 and instr3 (being consecutively 
and 
together at the end of a node)
3. Process instr2 and instr3
(if instr2 and instr3 were not there, you want to skip 
processing 
step 2 
and 3?)

Am i right? Please confirm (and/or give your sample input, to 
make 
the 
subject easier)

Cheers,
-- Abel

Emily(_dot_)Garrett(_at_)thomson(_dot_)com wrote:
I'm trying to use xsl:apply templates to grab the entire 
content 
of a
node, except for any PIs that may be at the very end of the 
node.  I can
see how position()=last() can be used to refer to the very 
last 
PI, but
how would I refer to possibly 2 or 3 PIs that are at the end 
of 
the node
(not knowing what they are or how many), but still process PIs 
that are
contained elsewhere in this content?   Is there some syntax 
that 
refers> to consecutive elements or refers to an element that is 
the last one in
a node, not knowing what element it is?

Here is explanation for what I'm trying to do:   

Process all content, unless they are PIs that occur 
consecutively at the
very end of the node.

Then I have to insert an element, then process these PIs that 
occur> > consecutively at the very end of the node.

I'm having trouble narrowing down my research on this one.  
Does 
anyone> have any ideas?

Thanks,
Emily

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




  


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


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


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