Re: [xsl] Filtering to the first nodes only

Subject: Re: [xsl] Filtering to the first nodes only
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Wed, 12 Jun 2002 15:47:39 +0100
Hi Geoff,

> Here is the code that I'm using, per Microsoft's example:
>
> filterStmt = "Message[position()= 1]";
> firstRow = history[curDim].oDoc.selectNodes(filterStmt);
>
> Using the "position" statement is supposed to only show the first
> level of nodes. My parser rejects the postion() function as not
> valid.

Probably you haven't set the "SelectionLanguage" property of the DOM
Document as "XPath" rather than "XSLPattern" or whatever it is that
MSXML uses as the default. The "XSLPattern" language doesn't support
as much as XPath and, of course, isn't standard.

Assuming that history[curDim].oDoc returns a DOM Document object, use
something like:

  history[curDim].oDoc.setProperty("SelectionLanguage", "XPath");
  history[curDim].oDoc.selectNodes("//Message[position() = 1]");

BTW, you can use just [1] instead of [position() = 1] if you like --
it means exactly the same thing.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


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


Current Thread