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