Q) Why is //Data/Item[position()=3] better than /Data/Item[position()=3] ?
A) It isn't, for the reasons you pointed out. If you are going to use it, you
ought to have a very good reason to do so. Using it because you saw it in an
example somewhere or because it was the only way you could get a poorly
constructed XPath expression to work aren't good reasons.
Q) ... is there opposition to using the short form /Data/Item[3] ?
A) None. The longer form is instructive, but confers no other advantage.
--
Charles Knell
cknell(_at_)onebox(_dot_)com - email
-----Original Message-----
From: Josh Canfield <Josh(_dot_)Canfield(_at_)plumtree(_dot_)com>
Sent: Fri, 23 Jan 2004 11:04:36 -0800
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Subject: RE: [xsl] Accessing data from repeating values with the same name
Why is //Data/Item[position()=3] better than /Data/Item[position()=3] ?
// is a shortcut for /descendant-or-self::node()/ and in this case it appears
that you specifically want only the single Data node.
In a bigger/deeper piece of XML doesn't using the // require that the XSLT
engine traverse the entire tree from the context node looking for Data nodes
that have an Item node at position 3? Whereas using /Data only looks for the
root node, and /Data/Item looks specifically for the Item nodes that are a
child of the root Data node.
Also, is there opposition to using the short form /Data/Item[3] ?
Thanks,
Josh
-----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
Andrew Curry
Sent: Friday, January 23, 2004 8:05 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Accessing data from repeating values with the same
name
fair enough, but it was corrected by accident, didnt see your reply until
after.
----- Original Message -----
From: "SHEIKH Sajjad" <Sajjad(_dot_)SHEIKH(_at_)efsa(_dot_)eu(_dot_)int>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Friday, January 23, 2004 3:52 PM
Subject: RE: [xsl] Accessing data from repeating values with the same name
Ok..you added //data/item while I was mentioning /data/item
Although both work but your proposed way is better!
-----Original Message-----
From: Andrew Curry [mailto:andrew(_dot_)curry(_at_)pa(_dot_)press(_dot_)net]
Sent: 23 January 2004 16:39
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Accessing data from repeating values with the same
name
did i?? didn't mean to.
----- Original Message -----
From: "SHEIKH Sajjad" <Sajjad(_dot_)SHEIKH(_at_)efsa(_dot_)eu(_dot_)int>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Friday, January 23, 2004 3:28 PM
Subject: RE: [xsl] Accessing data from repeating values with the same
name
Thanks Andrew for correction.
-----Original Message-----
From: Andrew Curry [mailto:andrew(_dot_)curry(_at_)pa(_dot_)press(_dot_)net]
Sent: 23 January 2004 16:14
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Accessing data from repeating values with the same
name
<xsl:value-of select="//Data/Item[position()=3]"/>
should do it.
----- Original Message -----
From: "Mark Williams" <mark(_at_)skwirel(_dot_)com>
To: "XSL-List" <XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Friday, January 23, 2004 2:45 PM
Subject: [xsl] Accessing data from repeating values with the same name
Hi,
How do I access repeating nodes in an xml file outside of a for-each
statement.
As an example:
<Data>
<Item>1</Item>
<Item>2</Item>
<Item>3</Item>
<Item>4</Item>
<Item>5</Item>
</Data>
How would I, say, get the value for 3rd item.
TIA
Mark
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list