|
Subject: RE: [xsl] Incrementing position in the tree midstream (Part 3) From: "Andreas L. Delmelle" <a_l.delmelle@xxxxxxxxxx> Date: Fri, 16 Apr 2004 17:41:42 +0200 |
> -----Original Message-----
> From: Durston, Andrew (AGRE)
>
>
> How would that be written?
>
> count(following::objecttext[.= 'string1' & 'string2']) ??
>
Hi,
Hmm. Would be more like:
count( following::objecttext[(.='string1') or (.='string2')] )
if you want to count the number of following objecttext nodes that have
'string1' or 'string2' as content.
If the '&' signifies a concatenation, simply use
count(following::objecttext[.=concat('string1','string2')])
However:
> And once I have the count, I use that in a for-each from '.' to
> following less than count, to output the cells?
>
> <xsl:for-each select=". |
> following::objecttext[position()< <<insert count command here
> or a variable??>>]">
The above calculated number will bear no relation to the set of nodes
selected in the for-each, unless you write it like:
<xsl:for-each select=". |
following::objecttext[(.='string1') or (.='string2')][
position() < $varcount]">
Let's say there are 5 nodes counted by the count() expression (5 nodes
following the current node, and whose content is 'string1' or 'string2').
>From *all* following objecttext nodes, you will select only the first 4 and
the current node. Does this sound like what you intend to do?
If not, maybe we'd better start again 'from the top'. Can you post a reduced
sample of the XML, and clarify how you would like to see it transformed?
(mainly the mentioned 'field' tabletype remains a mystery to the list: where
does it appear in the XML? As attribute? Or as child node? Of object or
objecttext?)
I have the feeling there is a more efficient solution than having to
traverse the following-axis for all objecttext nodes, but I really need to
know the exact structure of the XML in order to come up with something
that's definitely useful...
As a further tip:
<xsl:for-each select="nodes">
<xsl:copy-of select="." />
</xsl:for-each>
is actually the same as:
<xsl:copy-of select="nodes" />
The only difference is that on the above, you could add an xsl:sort, but
that could also be solved like:
<xsl:apply-templates select="nodes">
<xsl:sort select="@attr" />
</xsl:apply-templates>
...
<xsl:template match="nodes">
<xsl:copy-of select="." />
</xsl:template>
Cheers,
Andreas
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Incrementing position in the , Durston, Andrew (AGR | Thread | [xsl] XML to Table, Veronica Sanchez |
| RE: [xsl] how do you determine if a, Passin, Tom | Date | Re: [xsl] how i can use 'table' in , G. Ken Holman |
| Month |