xsl-list
[Top] [All Lists]

RE: Finding immediately preceding node -- solved.

2003-06-02 11:41:47

I finally got it work.  I abandoned for-each and went back to
original template and this worked:

<xsl:template match="c">
   <xsl:when test="@name='cde'">
       <xsl:choose>
           <xsl:when test="../preceding-sibling::b[1]/@name='abc'">
                <!-- Do something -->
           </xsl:when>
           <xsl:otherwise>
                <!-- Do something else -->
            </xsl:otherwise>
       </xsl:choose>
       <xsl:apply-templates/>
</xsl:template>

Thanks for everyones help!

Betty

On Mon, 2 Jun 2003, Passin, Tom wrote:

[ Betty Harvey]

I want to get the a true when I am inside <b name="cde"> and
the preceding <b> contains the attribute 'name="abc"'.  

<a>
  <b name="abc"/>
     <c/>
  <b>
     <c/>
  </b>
  <b name="abc">
     <c/>
  </b>
  <b name="cde">
    <c/>
...

Betty, what do you mean here?  By "inside", do you mean that a template
is processing a child of a b element?  Could it also be processing a "b"
element?  Could there be other children of a "b" besides just a "c"?
Can these other elements be nested within a "c" or one of the other
children?  In other words, how deep does "inside" go?  Do you always
need to know for any template that processes a child of b, or just for
certain ones?


Can you dispatch to different templates depending on the b's preceding
"b" sibling?

Tell us more!

Cheers,

Tom P

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list