RE: [xsl] XSL siblings

Subject: RE: [xsl] XSL siblings
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 28 Jun 2005 09:41:20 +0100
Yes, you're having problem understanding context.

At least this time you've shown us an input document and a stylesheet. But
you haven't given us any clue what output you want to produce. However, it's
hard to imagine that 

<xsl:for-each select="SAM">
   <xsl:for-each select="//SAM[A/AID = 'xxx']">

is doing anything useful ("for each SAM, process all the SAMs with an A/AID
equal to 'xxx')

Here:

<xsl:for-each select="C"> doesnt work since im
looping a sibling node outside of it,

you seem to have grasped the essence of the problem, which is that relative
path expressions only work if you get the context right. You probably want
select="../C".

Michael Kay
http://www.saxonica.com/





 

> -----Original Message-----
> From: -= jay =- [mailto:deepsweech@xxxxxxxxx] 
> Sent: 28 June 2005 09:24
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] XSL siblings
> 
> i have this problem again but now there's 3 siblings!
> 
> example
> <SAM>
>      <A>
>         <AID>xxx</AID>
>      </A>
>      <B>
>         <BID>yyy</BID>
>      </B>
>      <C>
>         <CID>zzz</CID>
>      </C>
> </SAM>
> <SAM> ..... and so on
> 
> nows here is my current code:
> <xsl:for-each select="SAM">
>   <xsl:for-each select="//SAM[A/AID = 'xxx']">
>     <xsl:for-each select="B">
>         <xsl:if test="BID='yyy' or BID='something'">
>                 <xsl:value-of select="BID">
> --   here is the my problem, i would like to display all CID under
> filtered SAM. ---
>                  <xsl:for-each select="C"> doesnt work since im
> looping a sibling node outside of it,
> 
> thanks,
> *-::jay::-*

Current Thread