Subject: Re: [xsl] group-adjacent problem From: Terry Ofner <tofner@xxxxxxxxxxx> Date: Wed, 13 Feb 2008 11:03:11 -0500 |
<xsl:otherwise> <xsl:apply-templates select="current-group()"/> </xsl:otherwise>
Terry Ofner 1541 Northbrook Drive Indianapolis, IN 46260 Voice: 317-870-1992 Fax: 317-870-7101
Just change your
<xsl:if test="self::matching_group">
into an xsl:choose/xsl:when, and add
<xsl:otherwise><xsl:copy-of select="current-group()"/></xsl:otherwise>
Michael Kay http://www.saxonica.com/
-----Original Message----- From: Terry Ofner [mailto:tofner@xxxxxxxxxxx] Sent: 13 February 2008 15:39 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] group-adjacent problem
I have this xml input:
<title>
<ChapNum>10</ChapNum>
<ChapName>Character Development</ChapName>
<Story>
<ma>_____ 1. denouement</ma>
<ma>_____ 2. conflict</ma>
<ma>_____ 3. fourth wall</ma>
<ma>_____ 4. turning point</ma>
<ma>_____ 5. nonrealistic</ma>
<ma>_____ 6. presentational</ma>
<ma>_____ 7. representational</ma>
<ma>_____ 8. resolution</ma>
<ma>_____ 9. rising action</ma>
<ma>_____ 10. subtext</ma>
<matching_group>a. falling action</matching_group>
<matching_group>b. without reference to the audience</
matching_group>
<matching_group>c. struggle</matching_group>
<matching_group>d. highest emotional intensity</ matching_group>
<matching_group>e. exaggerated</matching_group>
<matching_group>f. direct address</matching_group>
<matching_group>g. completion</matching_group>
<matching_group>h. complications</matching_group>
<matching_group>i. implied information</matching_group>
<matching_group>j. convention of realistic theatre</
matching_group>
<sa>11. What are the elements of traditional play
structure?</sa>
<sa>12. What techniques can you employ for timely cue
pickup?</
sa>
<es>13. What steps can help you develop a
characterization?</es>
</Story>
</title>
I need to process all the elements inside the story element. One thing I need to do is group the <matching_group> elements. Here is one of the templates I have tried to do this:
<xsl:template match='Story[child::matching_group]'> <xsl:for-each-group select="*" group-adjacent="name()"> <xsl:if test="self::matching_group"> <matching-group> <choices columns='1'> <xsl:for-each select="current-group()"> <xsl:apply-templates select="."/> </xsl:for-each> </choices> </matching-group> </xsl:if> </xsl:for-each-group> </xsl:template>
This works to group the <matching_group> elements. However, it cuts the <ma>, <sa>, and <es> elements from the result:
<title> <ChapNum>10</ChapNum> <ChapName>Character Development</ChapName> <matching-group> <choices columns="1"> <choice-a>falling action</choice-a> <choice-b>without reference to the audience</choice-b> <choice-c>struggle</choice-c> <choice-d>highest emotional intensity</choice-d> <choice-e>exaggerated</choice-e> <choice-f>direct address</choice-f> <choice-g>completion</choice-g> <choice-h>complications</choice-h> <choice-i>implied information</choice-i> <choice-j>convention of realistic theatre</choice-j> </choices> </matching-group> </title>
Any hints would be appreciated.
Terry Ofner
tofner@xxxxxxxxxxx
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] group-adjacent problem, Michael Kay | Thread | [xsl] Extracting text between nodes, Liron |
Re[2]: [xsl] Count occurances of tw, Arthur Maloney | Date | RE: [xsl] fairly complex xslt not g, Scott Trenda |
Month |