xsl-list
[Top] [All Lists]

RE: Confounded by grand-parents

2003-04-24 02:03:08
To test whether the grandparent block is the first block child of its parent, do

test="not(../parent::block/preceding-sibling::block)"

Michael Kay

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Jon Steeves
Sent: 23 April 2003 21:32
To: 'xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com'
Subject: RE: [xsl] Confounded by grand-parents


Unfortunately, I need the template to match on the register 
and then test to see if the grandparent is the 1st element of 
its type.

Thanks

Jon

-----Original Message-----
From: Marty McKeever [mailto:marty(_dot_)mckeever(_at_)goingv(_dot_)com]
Sent: Wednesday, April 23, 2003 12:41 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Confounded by grand-parents


you might try

xsl:template match="blocks/block[1]/register[1]"

or if you need the xsl:choose sytntax, i'm sure someone will 
post a fine example of the preceding-sibling::axis.

cheers


I~I~

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com]On Behalf Of 
Jon Steeves
Sent: Wednesday, April 23, 2003 3:11 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Confounded by grand-parents


Hello:
    Here's the xml I'm working with:

                    <blocks>
                            <block>
                                     <registers>
                                      <register/>
                                      <register/>
                                     </registers>
                            </block>
                            <block>
                                     <registers>
                                      <register/>
                                      <register/>
                                     </registers>
                            </block>
                    </blocks>

I want to process a register node if:
    1. It is the first register node and
    2. Its block grandparent is the first block node.

Here's what I've come up with so far, but it isn't working.

<xsl:template match="register">
 <xsl:choose>
  <xsl:when test="parent::*[position()=1]/parent::* and 
position()=1">

Can someone clear up my thinking here?


Cheers


Jon Steeves
Technical Communications
(604) 415-6053 ext. 2139
jon_steeves(_at_)pmc-sierra(_dot_)com


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




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

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



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



<Prev in Thread] Current Thread [Next in Thread>