|
Subject: Re: [xsl] How many passes through the document From: Ihe Onwuka <ihe.onwuka@xxxxxxxxxxxxxx> Date: Sun, 23 Sep 2012 12:29:57 +0100 |
On Sun, Sep 23, 2012 at 8:59 AM, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> Firstly, it depends on the processor, and secondly it doesn't really matter.
>
> One processor might build indexes for both keys in a single pass of the
> document, another might make one pass of the document for building each key.
> Either strategy might be faster. Why do you care which strategy is used -
> surely it's only the bottom-line performance that matters to you?
>
> There does seem to be an intrinsic inefficiency in that you are evaluating
>
> count(key('elems',name()))
>
> twice for each element: once when building the "counts" index, and once
> during the apply-templates. But it's not a very big inefficiency.
>
Given that solution is that avoidable?
> Rather more importantly, your code is incorrect: because of the way it uses
> name(), it won't produce sensible answers when applied to a document that
> binds the same prefix to different namespaces (or has two different default
> namespaces in different regions of the document). In 2.0, use node-name()
> instead.
>
is that saying that name() is deprecated?
> I think you are just trying to output the number of occurrences of the
> element whose name occurs most frequently. If that's the case, try
>
> <xsl:template match="/">
> <xsl:for-each-group select="//*" group-by="node-name()">
> <xsl:sort select="count(current-group())" order="descending"/>
> <xsl:if test="position()=1"><xsl:value-of
> select="count(current-group())"/></xsl:if>
> </xsl:for-each-group>
> </xsl:template>
>
printing the total number of attributes in the elements whose name
occurs most frequently. Interesting to see a different approach, that
was what I was hoping for.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] How many passes through t, Michael Kay | Thread | Re: [xsl] How many passes through t, Florent Georges |
| Re: [xsl] How many passes through t, Michael Kay | Date | Re: [xsl] Using barcode markup in S, Kevin Brown |
| Month |