[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
At 2016-01-20 17:35 +0000, Rick Quatro rick@xxxxxxxxxxxxxx wrote:
My take on it is below. As I see it, your focus is on the cases and what categorizes them is the closest preceding sibling. This would allow for an arbitrary number of case elements after each heading.
I hope this is helpful.
. . . . . . Ken
<xsl:output indent="yes"/>
Re: [xsl] for-each-group - only get elements in each group
Subject: Re: [xsl] for-each-group - only get elements in each group From: "G. Ken Holman g.ken.holman@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 20 Jan 2016 17:56:16 -0000 |
At 2016-01-20 17:35 +0000, Rick Quatro rick@xxxxxxxxxxxxxx wrote:
Hi, I have this XML: ... I want to group on each unique <Category> element and then only include the <Case> elements for each <Category>. Here is what I need: ...
My take on it is below. As I see it, your focus is on the cases and what categorizes them is the closest preceding sibling. This would allow for an arbitrary number of case elements after each heading.
I hope this is helpful.
. . . . . . Ken
t:\ftemp>type rick.xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Cases> <Story> <Category>Category1</Category> <Case>Case1</Case> <Category>Category1</Category> <Case>Case2</Case> <Category>Category1</Category> <Case>Case3</Case> <Category>Category1</Category> <Case>Case4</Case> <Category>Category2</Category> <Case>Case5</Case> <Category>Category2</Category> <Case>Case6</Case> <Category>Category2</Category> <Case>Case7</Case> <Category>Category2</Category> <Case>Case8</Case> </Story> </Cases> t:\ftemp>xslt2 rick.xml rick.xsl <?xml version="1.0" encoding="UTF-8"?> <cases> <category>Category1</category> <Case>Case1</Case> <Case>Case2</Case> <Case>Case3</Case> <Case>Case4</Case> <category>Category2</category> <Case>Case5</Case> <Case>Case6</Case> <Case>Case7</Case> <Case>Case8</Case> </cases>
t:\ftemp>type rick.xsl <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:output indent="yes"/>
<xsl:template match="/"> <cases> <xsl:for-each-group select="Cases/Story/Case" group-by="preceding-sibling::Category[1]"> <category> <xsl:apply-templates select="preceding-sibling::Category[1]/node()"/> </category> <xsl:copy-of select="current-group()"/> </xsl:for-each-group> </cases> </xsl:template>
</xsl:stylesheet> t:\ftemp>
-- Check our site for free XML, XSLT, XSL-FO and UBL developer resources | Free 5-hour lecture: http://www.CraneSoftwrights.com/links/video.htm | Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ | G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx | Google+ profile: http://plus.google.com/+GKenHolman-Crane/about | Legal business disclaimers: http://www.CraneSoftwrights.com/legal |
--- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] for-each-group - only get, G. Ken Holman g.ken. | Thread | Re: [xsl] for-each-group - only get, Rick Quatro rick@xxx |
Re: [xsl] for-each-group - only get, Martin Honnen martin | Date | Re: [xsl] for-each-group - only get, Rick Quatro rick@xxx |
Month |