|
[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: Wildcard problem
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: 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')])"/>

|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
| RSS 2.0 |
|
| Atom 0.3 |
|
|