|
Subject: Re: [xsl] Is this legal xpath usage? From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx> Date: Thu, 19 Apr 2001 08:23:16 +0100 |
Hi Patrick,
> I expect the external function jString:compareTo() to be
> called for each TRACK Element. It is called only once for the
> first TRACK.
>
> <xsl:template match="/" >
> <xsl:message>Filtering tracks earlier than
> <xsl:value-of select="$trimDate" /></xsl:message>
> <PRODUCT_LIST PACKAGER="DWS" >
> <xsl:apply-templates
> select="PRODUCT_LIST/PRODUCT[jString:compareTo($trimDate,
> rioport:formatDate(./PRODUCT_DETAILS/TRACK/LAST_UPDATE)) < 0]" />
> </PRODUCT_LIST>
> </xsl:template>
You're passing a node set consisting of all the LAST_UPDATE elements
to the rioport:formatDate() extension function. I have no idea how
that extension function works, but I suspect that it takes the first
node from that node set and returns a string, rather than formatting
all of them and returning a node set.
I think what you probably want is:
PRODUCT_LIST/PRODUCT
[PRODUCT_DETAILS/TRACK
[jString:compareTo($trimDate,
rioport:formatDate(LAST_UPDATE)) < 0]]
This applies templates to:
the PRODUCT elements that are children of the PRODUCT_LIST element
that is a child of the current node
where there is a TRACK element that is a child of the
PRODUCT_DETAILS element that is a child of the PRODUCT element
for which the result of comparing the $trimDate to the
formatted value of the LAST_UPDATE child of the TRACK element
is less than 0
I hope that helps,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Is this legal xpath usage?, Patrick Moore | Thread | [xsl] copying variables and bits of, Antoine Quint, Knows |
| [xsl] How to copy xml which attribu, Yang | Date | Re: [xsl] copy-of question, Jeni Tennison |
| Month |