Re: [xsl] 1st previous node()

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