Subject: Re: [xsl] targeting the last element in a node or consecutive elements From: egarrett@xxxxxxxxxxxx Date: Thu, 04 Jan 2007 14:21:15 -0500 |
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@xxxxxxxxxxxx Date: Thursday, January 4, 2007 9:59 am Subject: Re: [xsl] targeting the last element in a node or consecutive elements To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > 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.online@xxxxxxxxx> > Date: Thursday, January 4, 2007 9:53 am > Subject: Re: [xsl] targeting the last element in a node or > consecutive > elements > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > > 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.Garrett@xxxxxxxxxxx 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] targeting the last elemen, egarrett | Thread | Re: [xsl] targeting the last elemen, egarrett |
[xsl] FO Processor Comparisons, Tristan Stevens | Date | Re: [xsl] targeting the last elemen, egarrett |
Month |