xsl-list
[Top] [All Lists]

Re: Finding immediately preceding node.

2003-06-02 07:26:07

Thanks Ken:

        Your example reinforces my theory that I was going
to have to rewrite the current model and use the 'for-each'.
I was trying to avoid rewriting some complex models but I
I guess there isn't an easy way of looking back at the
parent, then the immediate preceding node without the template
being in the parent node.

        Thanks again!

Betty

On Mon, 2 Jun 2003, G. Ken Holman wrote:

At 2003-06-02 09:56 -0400, Betty Harvey wrote:
I want to get the a true when I am inside <b name="cde"> and
the preceding <b> contains the attribute 'name="abc"'.

     <xsl:if test="preceding-sibling::b[(_at_)name='abc']">

A complete illustration is below where I start off in the <b name="cde"> 
and test the preceding-sibling <b>.

I hope this helps, Betty,

.............. Ken

T:\ftemp>type betty.xml
<?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>

T:\ftemp>type betty.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                 version="1.0">

<xsl:template match="/">
   <xsl:for-each select="//b[(_at_)name='cde']">
     <xsl:if test="preceding-sibling::b[(_at_)name='abc']">
       <xsl:text>Found it!</xsl:text>
     </xsl:if>
   </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

T:\ftemp>saxon betty.xml betty.xsl
<?xml version="1.0" encoding="utf-8"?>Found it!
T:\ftemp>

--
Upcoming hands-on courses: (registration still open!)
-      (XSLT/XPath and/or XSL-FO) North America: June 16-20, 2003

G. Ken Holman                mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd.         http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0   +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6                      Definitive XSLT and XPath
ISBN 0-13-140374-5                              Definitive XSL-FO
ISBN 1-894049-08-X  Practical Transformation Using XSLT and XPath
ISBN 1-894049-11-X              Practical Formatting Using XSL-FO
Member of the XML Guild of Practitioners:    http://XMLGuild.info
Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc


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



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