[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Thanx!
In this example, where I only user Muenchian method to group, elements where info-attribute doesn't contains anything are also displayed, but not needed. How do I get rid of those elements here?
<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:key name="by-info" match="Article" use="@info"/>
<xsl:template match="/Documents">
<Documents>
<xsl:for-each select="Document/Article[count(.|key('by-info', @info)[1])=1]">
<Document name="{@info}">
<xsl:copy-of select="key('by-info', @info)"/>
</Document>
</xsl:for-each>
</Documents>
</xsl:template>
</xsl:stylesheet>
Thank you!
_m
_________________________________________________________________
Dont just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/
Re: [xsl] Re: [xslt transform & grouping] Using the Muenchian Method?
Subject: Re: [xsl] Re: [xslt transform & grouping] Using the Muenchian Method? From: "Michael PG" <xrow@xxxxxxx> Date: Thu, 07 Oct 2004 12:59:02 +0000 |
Thanx!
In this example, where I only user Muenchian method to group, elements where info-attribute doesn't contains anything are also displayed, but not needed. How do I get rid of those elements here?
<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:key name="by-info" match="Article" use="@info"/>
<xsl:template match="/Documents">
<Documents>
<xsl:for-each select="Document/Article[count(.|key('by-info', @info)[1])=1]">
<Document name="{@info}">
<xsl:copy-of select="key('by-info', @info)"/>
</Document>
</xsl:for-each>
</Documents>
</xsl:template>
</xsl:stylesheet>
Thank you!
_m
From: David Carlisle <davidc@xxxxxxxxx>
Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Re: [xslt transform & grouping] Using the Muenchian Method?
Date: Thu, 7 Oct 2004 13:13:10 +0100
You get $ saxon filter.xml filter.xsl <?xml version="1.0" encoding="UTF-8"?> <Documents> <Document name="sub"> <Article title="1.1" info="sub" filter="food"/> </Document> <Document name="main"> <Article title="1.2" info="main" filter="food"/> <Article title="2.2" info="main" filter="food"/> </Document> <Document name="child"/> </Documents>
because of the different ways you filter. on document you allow "" but in <xsl:copy-of select="key('by-info',@info)[@filter=$filter]"/> you don't.
I think that _is_ what you want, so in your for-each,
<xsl:for-each select="Document[@filter='' or @filter=$filter]/Article[generate-id()=generate-id(key('by-info',@info)[@filter='' or @filter=$filter])]">
you want to make sure that you always have at least one eleemnt in the key that really has the filter value and not just "" so that <xsl:copy-of select="key('by-info',@info)[@filter=$filter]"/> always produces something.
you can do that by making the filters on the key() match, delete @filter='' or
<xsl:for-each select="Document[@filter='' or @filter=$filter]/Article[generate-id()=generate-id(key('by-info',@info)[@filter=$filter])]">
and you get
$ saxon filter.xml filter.xsl <?xml version="1.0" encoding="UTF-8"?> <Documents> <Document name="sub"> <Article title="1.1" info="sub" filter="food"/> </Document> <Document name="main"> <Article title="1.2" info="main" filter="food"/> <Article title="2.2" info="main" filter="food"/> </Document> </Documents>
David
________________________________________________________________________ This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________
_________________________________________________________________
Dont just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: [xslt transform & gro, Anton Triest | Thread | Re: [xsl] Re: [xslt transform & gro, Anton Triest |
Re: [xsl] Re: [xslt transform & gro, David Carlisle | Date | Re: [xsl] Re: [xslt transform & gro, Anton Triest |
Month |