[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
AW: [xsl] 1st previous node()
Subject: AW: [xsl] 1st previous node() From: "Szabo, Patrick \(LNG-VIE\)" <patrick.szabo@xxxxxxxxxxxxx> Date: Tue, 8 Feb 2011 08:17:22 +0100 |
I just took a look at gernerate-id in my book and from what I'm reading here, I'd say you will always get the same ID as long as you give the function the same node. . . . . . . . . . . . . . . . . . . . . . . . . . . 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 -----UrsprC<ngliche Nachricht----- Von: Karl Stubsjoen [mailto:kstubs@xxxxxxxxx] Gesendet: Dienstag, 08. Februar 2011 08:09 An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Betreff: Re: [xsl] 1st previous node() Yes, but preceding incorrectly would consider the children of the previous node, so preceding-sibling::*[1] is the right answer, and then of course ../*[1] would select the first ancestor. I'll give this a go. Hopefully someone can chime in on the generate-id issue I am having, I'm really expecting a consistent answer so assuming I might be doing something wrong. Karl.. On Tue, Feb 8, 2011 at 12:03 AM, Szabo, Patrick (LNG-VIE) <patrick.szabo@xxxxxxxxxxxxx> wrote: > I think that preceding includes ancestors too so you could try leaving the ancestor::*[1] out. > > Don't know about the id's :-/ > > > > > . . . . . . . . . . . . . . . . . . . . . . . . . . > 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 > > > -----UrsprC<ngliche Nachricht----- > > Von: Karl Stubsjoen [mailto:kstubs@xxxxxxxxx] > Gesendet: Dienstag, 08. Februar 2011 07:59 > An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Betreff: Re: [xsl] 1st previous node() > > 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 >> >> >> -----UrsprC<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 > > -- Karl Stubsjoen MeetScoresOnline.com (602) 845-0006
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] 1st previous node(), Karl Stubsjoen | Thread | Re: [xsl] 1st previous node(), Karl Stubsjoen |
Re: [xsl] 1st previous node(), Karl Stubsjoen | Date | Re: [xsl] 1st previous node(), Karl Stubsjoen |
Month |
Keywords