Hi Betty,
your test is wrong. "Inside" b, i.e. in a template for c, try:
<xsl:if test="parent::b[(_at_)name='cde']/preceding-sibling::b[1]/@name='abc'">
The expression //c/../b[(_at_)name='cde']/preceding-sibling::b[1]/@name='abc'
is true, because your XML is maybe not what you wanted: The first
c element is not inside the first b element, which is empty.
Thus, //c/.. takes you to the a element and all but the first b elements.
From the a element, the part /b[(_at_)name=(_dot_)(_dot_)(_dot_)] takes you to
the 4th b...
Regards,
Markus
__________________________
Markus Abt
Comet Computer GmbH
Rueckertstrasse 5
80336 Muenchen
GERMANY
Phone +49 89 5445 6045
Fax +49 89 5445 6046
http://www.comet.de
mailto:abt(_at_)comet(_dot_)de
----------
Von: Betty Harvey
Gesendet: Montag, 2. Juni 2003 15:56
An: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Betreff: [xsl] Finding immediately preceding node.
I have been struggling with this problem and I can't seem to
get the XPath to work. I have looked through the archive and
can't seem to find the answer.
I want to get the a true when I am inside <b name="cde"> and
the preceding <b> contains the attribute 'name="abc"'.
<?xml version="1.0"?>
<a>
<b name="abc"/>
<c/>
<b>
<c/>
</b>
<b name="abc">
<c/>
</b>
<b name="cde">
<c/>
</b>
<b>
<c/>
</b>
<b>
<c/>
</b>
<b name="abc">
<c/>
</b>
</a>
The following XPath gives a value of true in 'XPathTester':
//c/../b[(_at_)name='cde']/preceding-sibling::b[1]/@name='abc'
I have the following in my xslt but never get a 'true':
<xsl:if test="../b[(_at_)name='cde']/preceding-sibling::b[1]/@name='abc'">
Thanks!
Betty
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Betty Harvey | Phone: 410-787-9200 FAX: 9830
Electronic Commerce Connection, Inc. |
harvey(_at_)eccnet(_dot_)com | Washington,DC XML Users Grp
URL: http://www.eccnet.com | http://www.eccnet.com/xmlug
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\\/\/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list