[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: slicing an XML document
Saverio,
In XSLT 1.0 I'd de-duplicate the list using a key, in which the key value combines the node's name with its depth: <xsl:key name="nodes-by-depth-and-name" match="*" use="concat(count(ancestor-or-self::*), ':', local-name())"/> This allows you to slip a test into your for-each: <xsl:template match="/"> <xsl:for-each select="//*[count(ancestor-or-self::*) = $depth]"> <xsl:if test="count(. | key('nodes-by-depth-and-name', concat($depth, ':', local-name()))[1]) = 1"> <!-- the test will be true only when the node is the first with its name and depth --> <xsl:copy/> </xsl:if </xsl:for-each> </xsl:template> This is an adaptation of a Muenchian grouping technique: the key puts all the elements with the same depth and name into a group (retrieved by the key), and the test throws out all but the first in each group. I don't know why this isn't working on your real data but it is on your pizza sample; it's not because the technique doesn't hold up at different and variable depths (it does). Cheers, Wendell At 05:16 PM 10/15/2002, you wrote: On Tue, 15 Oct 2002, Wendell Piez wrote: ====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ====================================================================== XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
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
|