Subject: Re: [xsl] 1st previous node() From: Karl Stubsjoen <kstubs@xxxxxxxxx> Date: Tue, 8 Feb 2011 00:24:03 -0700 |
Great, and I have been doing some different tests on a sample XML and the result is consistent. So there must be something else wrong. Thanks! On Tue, Feb 8, 2011 at 12:17 AM, Szabo, Patrick (LNG-VIE) <patrick.szabo@xxxxxxxxxxxxx> wrote: > 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 > > > -----Urspr|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 >> >> >> -----Urspr|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 >>> >>> >>> -----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 >> >> > > > > -- > 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 | Re: [xsl] 1st previous node(), Imsieke, Gerrit, le- |
AW: [xsl] 1st previous node(), Szabo, Patrick \(LNG | Date | Re: AW: [xsl] 1st previous node(), Imsieke, Gerrit, le- |
Month |