xsl-list
[Top] [All Lists]

AW: [xsl] 1st previous node()

2011-02-08 01:17:39
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(_dot_)szabo(_at_)lexisnexis(_dot_)at
Tel.: +43 (1) 534 52 - 1573 
Fax: +43 (1) 534 52 - 146 


-----Ursprüngliche Nachricht-----

Von: Karl Stubsjoen [mailto:kstubs(_at_)gmail(_dot_)com] 
Gesendet: Dienstag, 08. Februar 2011 08:09
An: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_dot_)szabo(_at_)lexisnexis(_dot_)at> 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(_dot_)szabo(_at_)lexisnexis(_dot_)at
Tel.: +43 (1) 534 52 - 1573
Fax: +43 (1) 534 52 - 146


-----Ursprüngliche Nachricht-----

Von: Karl Stubsjoen [mailto:kstubs(_at_)gmail(_dot_)com]
Gesendet: Dienstag, 08. Februar 2011 07:59
An: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_dot_)szabo(_at_)lexisnexis(_dot_)at> wrote:
Have you tried preceding::*[1] ?!
AFAIK this only matches elements.


. . . . . . . . . . . . . . . . . . . . . . . . . .
Patrick Szabo
 XSLT-Entwickler
LexisNexis
Marxergasse 25, 1030 Wien

mailto:patrick(_dot_)szabo(_at_)lexisnexis(_dot_)at
Tel.: +43 (1) 534 52 - 1573
Fax: +43 (1) 534 52 - 146


-----Ursprüngliche Nachricht-----

Von: Karl Stubsjoen [mailto:kstubs(_at_)gmail(_dot_)com]
Gesendet: Dienstag, 08. Februar 2011 07:16
An: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--
Karl Stubsjoen
MeetScoresOnline.com
(602) 845-0006

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





-- 
Karl Stubsjoen
MeetScoresOnline.com
(602) 845-0006

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>