RE: [xsl] Using position predicate in XPath string within selectSingleNode DOM method

Subject: RE: [xsl] Using position predicate in XPath string within selectSingleNode DOM method
From: "Matthieu Ricaud" <matthieu.ricaud@xxxxxxx>
Date: Wed, 24 Nov 2004 15:15:42 +0100
Thanks all for your answer and interess !

David I totally agree with

" ITEM[1] selects the first ITEM
ITEM[.=1] selects all ITEMs with string value numerically equal to 1."

It's just that I tried Pieter's suggestion ...unsuccessfully.

Emmanouil

"In sarissa i implement the selectSingleNode by appending '[1]' to the
xpath expression then calling selectNodes. Maybe MSXML's implementation
has the same flaw ;-)"

I actually append '[1]' (or generaly '[n]' n>0) to my Xpath before apply the
SelectSingleNode method and this precisely this '[n]' which make my parser
not matching anynode !

My Xpath expression work perfectly if I put it within a <xsl:value-of> in an
XSL file applied to my XML but when I put it in  SelectSingleNode () within
an asp page (see my last mail) it do not work...

So it's not an Xpath problem, the question is why a correct Xpath expression
don't work with SelectSingleNode () ?
Is it a bug, an exeption ?

The MSDN spec about SelectSingleNode say :
"var objXMLDOMNode = oXMLDOMNode.selectSingleNode(queryString);
Where queryString is a string specifying an XPath expression."

Isn't "ITEM[2]" a correct XPath expression ?!
(PS : I'm sure my oXMLDOMNode as 2 ITEM childrens)

This question is more about DOM method implementation, so maybe it shouldn't
be posted hier ?
sorry if so.
But anyway if someone have a solution, I'll be gratefull to him ;)

Matt

-----Message d'origine-----
De : Emmanouil Batsis [mailto:Emmanouil.Batsis@xxxxxxxxxxx]
Envoye : mercredi 24 novembre 2004 13:04
A : xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Objet : Re: [xsl] Using position predicate in XPath string within
selectSingleNode DOM method


David Carlisle wrote:

>do you wrap the expression in () before appending [1] (you need to)
>
>(/a/b/c)[1]
>
>will select at most 1 node
>
>/a/b/c[1]
>
>will select all c nodes that are the first child of a b.
>
>
Now that you mention it...

Cheers,

Manos

Current Thread