|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: xsl grouping problem
An XSLT 1.0 solution:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:key name="kLLast" match="line_last | line"
use="generate-id(preceding-sibling::line_first[1])"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="line_first">
<stanza>
<xsl:copy-of select=
".|key('kLLast',generate-id())"/>
</stanza>
</xsl:template>
<xsl:template match="line|line_last"/>
</xsl:stylesheet>
Cheers,
Dimitre Novatchev
On 9/9/05, Jeff Hatch <hatchjk@xxxxxxxxxxxxx> wrote:
> I've been chewing on this for some time now and would love some
suggestions.
> Coming from a document-centric environment, I am given xml that looks like
this:
>
> <chapter>
> <para>This is a paragraph in the chapter</para>
> <line_first>This is first line of a stanza of poetry</line_first>
> <line>This is line of poetry</line>
> <line>This is line of poetry</line>
> <line>This is line of poetry</line>
> <line_last>This is last line of a stanza of poetry</line_last>
> <para>This is a paragraph in the chapter</para>
> </chapter>
>
> The challenge is to perform copy and grouping operations to a) copy all
existing
> structure as is, using copy-of, which is not a problem. However, to the
above
> xml I wish to apply additional structure to create a poem stanza:
>
> <chapter>
> <para>This is a paragraph in the chapter</para>
> <stanza>
> <line_first>This is first line of poetry</line_first>
> <line>This is line of poetry</line>
> <line>This is line of poetry</line>
> <line>This is line of poetry</line>
> <line_last>This is last line of poetry</line_last>
> </stanza>
> <para>This is a paragraph in the chapter</para>
> </chapter>
>
> My difficulty stems from being dealt two dissimilar element names at the
> beginning and end of the block of xml that needs to be grouped. My attempts
to
> do this with group-starting-with and group-ending-with have failed.
Performing
> group-adjacent on the <line> elements miss the first_ and last_line
elements.
> Any thoughts?
>
>
-----------------------------------------------------------------------------
-
> This message may contain confidential information, and is
> intended only for the use of the individual(s) to whom it
> is addressed.
>
-----------------------------------------------------------------------------
-
>
>
--
Cheers,
Dimitre Novatchev
---------------------------------------
Harry did not ask how Dumbledore knew; ...but Harry had long since
learned that bangs and smoke were more often the marks of ineptitude
than expertise.
|
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
|

Cart








