xsl-list
[Top] [All Lists]

Re: trouble with preceding axis

2006-01-03 18:45:48
Lisa,

Thank you. Actually, using your example I was able to make it work with the following:

  /root/orange/preceding-sibling::*[1]

This works on my real data, but I worry a little if this is syntax works for more complex cases. I can't thank the group enough for the kind pointers on XPath.

Duane

On Jan 3, 2006, at 6:43 PM, Xia Li wrote:

You might select the nearest preceding sibling like this,

        <xsl:for-each select="/root/orange/preceding-sibling::*">
            <xsl:if test="position() = last()">
                <xsl:value-of select="name(.)"/>
                 ...
            </xsl:if>
        </xsl:for-each>


Hope this is what you want.

Lisa


-----Original Message-----
From: Duane Gran [mailto:duane(_dot_)gran(_at_)gmail(_dot_)com]
Sent: Tuesday, January 03, 2006 1:20 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] trouble with preceding axis

Lisa,

Thank you very much.  If you don't mind, I've run into another issue
today with referencing the preceding element.  Here is an example:

<root>
   <apple/>
   <pear/>
   <orange/>
</root>

Given an xpath to orange (/root/orange) I want to reference the
previous element which is a peer.  I tried the following with no
success:

   /root/preceding::orange

I'm sure this is dreadfully simple, but I'm drawing a blank and I'm
not seeing the answer in the tutorials I'm reading.

Duane

On Jan 3, 2006, at 2:52 PM, Xia Li wrote:

If you want to select the preceding <item> element of the <item>
element
whose child <label> element satisfies the predicate [label =
'subTitle'], you might try the following XPath expression,

//item[label = 'subTitle']/preceding::item

Lisa


-----Original Message-----
From: Duane Gran [mailto:duane(_dot_)gran(_at_)gmail(_dot_)com]
Sent: Tuesday, January 03, 2006 10:35 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] trouble with preceding axis

I'm having some trouble using the preceding axis in XPath and would
be much obliged if someone could steer me in the right direction.  I
have the following document:

<root>
   <item order="3">
     <label>Title</label>
   </item>
   <item order="4">
     <label>subTitle</label>
   </item>
</root>

I have the following XPath to select the second item, based on the
value of its label child:

   //item[label = 'subTitle']

Now I want to modify this so that I refer to the preceding item
element, the first one in the list.  I tried the following without
success (it returns the second item element):

   //preceding::item[label = 'subTitle']

Suggestions are most welcome on this.

Duane

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--