[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
FWIW, a 1.0 solution without Muenchian grouping:
<xsl:template ...>
...
<xsl:variable name="keep"><xsl:apply-templates><xsl:sort select="name()" /></xsl:apply-templates></xsl:variable>
count: <xsl:value-of select="string-length(normalize-space($keep))" />
</xsl:template>
<xsl:template match="*[name()=name(preceding-sibling::*[1])]" />
<xsl:template match="*[not(starts-with(name(), 'WAAUX'))]" />
<xsl:template match="*[not(translate(substring(name(),6,2), '0123456789','') = '')]" />
<xsl:template match="*">0</xsl:template>
Khorasani, Houman wrote:
Re: [xsl] Wildcard problem
Subject: Re: [xsl] Wildcard problem From: Andrew Franz <afranz0@xxxxxxxxxxxxxxxx> Date: Thu, 06 Oct 2005 23:37:53 +1000 |
FWIW, a 1.0 solution without Muenchian grouping:
<xsl:template ...>
...
<xsl:variable name="keep"><xsl:apply-templates><xsl:sort select="name()" /></xsl:apply-templates></xsl:variable>
count: <xsl:value-of select="string-length(normalize-space($keep))" />
</xsl:template>
<xsl:template match="*[name()=name(preceding-sibling::*[1])]" />
<xsl:template match="*[not(starts-with(name(), 'WAAUX'))]" />
<xsl:template match="*[not(translate(substring(name(),6,2), '0123456789','') = '')]" />
<xsl:template match="*">0</xsl:template>
Khorasani, Houman wrote:
HI David,
muenchian grouping; I have to read and learn more about it. However I can imagine what the index is supposed to do; to prevent the counting of doubles in my case.
I don't get an error with your code. However I get a count of 10 when I should have gotten 2.
<WAAUX03MeterPulse action="add"> <WAAUX03WithholdNumber action="add"> <WAAUX01MeterPulse action="add"> <WAAUX01Bar141 action="add"> <WAAUX01CallBarring action="add"> <WAAUX01Line action="add"> <WAAUX03ICB action="add"> <WAAUX01OCBE action="add"> <WAAUX03OCB action="add"> <WAAUX03Line action="add">
It still counts everything with WAAUX following two digits, which are 10.
As I said, I am very new to muenchian grouping. However could it be that this is wrong:
<xsl:key name="WAAUX" match="*[starts-with(name(),'WAAUX')]" use="name()"/>
Because not each element that starts with WAAUX needs a unique index. But each element that starts with WAAUX AND a two number digits needs a unique index, right? But how is this possible? The Translate won't help in this situation. Unless the problem is somewhere else...
Many thanks Houman
-----Original Message-----
From: David Carlisle [mailto:davidc@xxxxxxxxx] Sent: 06 October 2005 10:38
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Wildcard problem
However the translate() funcation eliminates this differences.
Is that possible or too complicated for XSLT?
You just need to do the de-duplication before the translate. eg using keys (muenchian grouping)
<xsl:key name="WAAUX" match="*[starts-with(name(),'WAAUX')]" use="name()"/>
<xsl:value-of select="count(* [generate-id()=generate-id(key('WAAUX',name())[1])] [starts-with(translate(name(),'123456789','000000000'),'WAAUX00')])"/>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Wildcard problem, David Carlisle | Thread | RE: [xsl] Wildcard problem, Khorasani, Houman |
RE: [xsl] Help renaming attributes, Jarno.Elovirta | Date | RE: [xsl] Help renaming attributes, Nadia . Swaby |
Month |