Subject: Re: [xsl] Transformation Grouping Problem (XSLT 2.0, Saxon-PE 9.3.0.5) From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Fri, 16 Sep 2011 10:57:32 -0400 |
<xsl:template match="*[*]"> <xsl:result-document ...> <xsl:copy> <xsl:copy-of select="@*,node() except *[*]"/> </xsl:copy> </xsl:result-document> <xsl:apply-templates select="*[*]"/> </xsl:template>
At 2011-09-16 14:44 +0000, Raymond Lillibridge wrote:I'm in need of some assistance with group logic using XSLT 2.0.
I don't think you need group logic for what you are asking.
Given the following sample xml file as input:
<book> <title>My Book Title</title>
<para>book Blah, blah, blah</para> <para>book Dah, dah, dah</para> <para>book Lah, lah, lah</para>
<level1> <title>level1 AAA</title> <para>level1 Blah, blah, blah</para> <para>level1 Dah, dah, dah</para> <para>level1 Lah, lah, lah</para>
<level2> <title>level2 AAA</title> <para>level2 Blah, blah, blah</para> <para>level2 Dah, dah, dah</para> <para>level2Lah, lah, lah</para>
<level3>
<title>level3 AAA</title>
<para>level3 Blah, blah, bl= ah</para>
<para>level3 Dah, dah, dah<= /para>
<para>level3 Lah, lah, lah<= /para>
</level3>
<level3>
<title>level3 AAA</title>
<para>level3 Blah, blah, bl= ah</para>
<para>level3 Dah, dah, dah<= /para>
<para>level3 Lah, lah, lah<= /para>
</level3>
</level2> </level1> </book>
using 'for-each-group' I can group by the different levels, but how can I = isolate just the 'top' content of the <book> or <level#>?
If you are at the root: book/* except book/level1
If you are at book: * except level1
For instance, I'd like to create an XML result-document that contains only:
<book> <title>My Book Title</title>
<para>book Blah, blah, blah</para> <para>book Dah, dah, dah</para> <para>book Lah, lah, lah</para> </book>
...and another XML result-document that contains only:
<level1> <title>level1 AAA</title> <para>level1 Blah, blah, blah</para> <para>level1 Dah, dah, dah</para> <para>level1 Lah, lah, lah</para> </level1>
...&c.
You don't have mixed content in your paragraphs or titles. If that can be relied upon, then you can generalize the solution to:
<xsl:template match="*[*]"> <xsl:result-document ...> <xsl:copy/> <xsl:copy-of select="@*,node() except *[*]"/> </xsl:result-document> <xsl:apply-templates select="*[*]"/> </xsl:template>
I hope this helps.
. . . . . . . . . . Ken
-- Contact us for world-wide XML consulting and instructor-led training Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Google+ profile: https://plus.google.com/116832879756988317389/about Legal business disclaimers: http://www.CraneSoftwrights.com/legal
-- Contact us for world-wide XML consulting and instructor-led training Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Google+ profile: https://plus.google.com/116832879756988317389/about Legal business disclaimers: http://www.CraneSoftwrights.com/legal
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Transformation Grouping P, G. Ken Holman | Thread | [xsl] RE: Transformation Grouping P, Raymond Lillibridge |
Re: [xsl] Transformation Grouping P, G. Ken Holman | Date | Re: [xsl] Transformation Grouping P, Andrew Welch |
Month |