|
Subject: Re: [xsl] 1st previous node() From: Karl Stubsjoen <kstubs@xxxxxxxxx> Date: Mon, 7 Feb 2011 23:59:09 -0700 |
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
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| AW: [xsl] 1st previous node(), Szabo, Patrick \(LNG | Thread | AW: [xsl] 1st previous node(), Szabo, Patrick \(LNG |
| Re: [xsl] 1st previous node(), Imsieke, Gerrit, le- | Date | AW: [xsl] 1st previous node(), Szabo, Patrick \(LNG |
| Month |