Subject: Re: [xsl] 1st previous node() From: Karl Stubsjoen <kstubs@xxxxxxxxx> Date: Mon, 7 Feb 2011 23:59:09 -0700 |
I have now. I've just noted that in an xml like this: <a> <b> <c> <e></e> </c> </b> <x>current node</x> <a> Given <x> is the context node, the preceding element is <e>, but I am expecting <b> So I now have something like this: <xsl:variable name="previous-nodes" select="ancestor::*[1] | preceding-sibling::*[1]/> The ancestor select is necessary because if the preceding <b> node did not exist then the correct node match would be <a>. So then previous node is: $previous-nodes[last()] See any issues with the above? Let me restate what I am after: Select the first preceding sibling node if exists, or select the first ancestor node, if exists. I have another question about generating id's. Will the results be the same regardless how you get to the node()? I seem to be getting different answers, but this is not conclusive. Karl.. On Mon, Feb 7, 2011 at 11:40 PM, Szabo, Patrick (LNG-VIE) <patrick.szabo@xxxxxxxxxxxxx> wrote: > Have you tried preceding::*[1] ?! > AFAIK this only matches elements. > > > . . . . . . . . . . . . . . . . . . . . . . . . . . > Patrick Szabo > XSLT-Entwickler > LexisNexis > Marxergasse 25, 1030 Wien > > mailto:patrick.szabo@xxxxxxxxxxxxx > Tel.: +43 (1) 534 52 - 1573 > Fax: +43 (1) 534 52 - 146 > > > -----Urspr|ngliche Nachricht----- > > Von: Karl Stubsjoen [mailto:kstubs@xxxxxxxxx] > Gesendet: Dienstag, 08. Februar 2011 07:16 > An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Betreff: [xsl] 1st previous node() > > XSL1.0 > I need help finding the first previous node, skipping white space, > comments, etc.. I thought this might work, but I can't get it or > similar tries to work. > > <xsl:variable name="previous" select="preceding::node() > [not(comment())] > [not(text())] > [not(processing-instruction())] > [1]"/> > > Given that <X> is the context node then I expect the previous node is <M>. > > <A> > <M> > <?skip me?> > <!--skip me--> > </M> > <X> this is context node </X> > </A> > > Given that <X> is the context node then I expect the previous node is <B>. > > <A> > <B> > <X> this is context node </X> > </B> > </A> > > > > -- > Karl Stubsjoen > MeetScoresOnline.com > (602) 845-0006 > > -- Karl Stubsjoen MeetScoresOnline.com (602) 845-0006
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
AW: [xsl] 1st previous node(), Szabo, Patrick \(LNG | Thread | AW: [xsl] 1st previous node(), Szabo, Patrick \(LNG |
Re: [xsl] 1st previous node(), Imsieke, Gerrit, le- | Date | AW: [xsl] 1st previous node(), Szabo, Patrick \(LNG |
Month |