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