[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
* Michael Kay
<snip>
</snip>
Hi Micheal
I am being vague, because i don't understand all the issues - this is my first transform. So
then, I don't think then I understand your second option then. This is the code that i wrote below (Listing 1)
<xsl:function name="f:child"> <xsl:param name="level"/>
<xsl:choose>
<xsl:when test="$level='PART'">
DIVISION
</xsl:when>
Thanks Mark Brand
Michael Kay wrote:
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Re: [xsl] XSLT 2.0 & Grouping for-each-group - RESEND
Subject: Re: [xsl] XSLT 2.0 & Grouping for-each-group - RESEND From: Mark Brand <mark.brand@xxxxxxxxxxxxxxxxxxxx> Date: Thu, 07 Aug 2003 19:41:43 +1000 |
* Michael Kay
<snip>
Clearly the XSLT must be well-formed XML, so the closing tags have to be properly nested, and they will then also be properly nested in the result document. In fact, it's impossible to output a document in which the tags aren't properly nested! So I don't think I understand the question.
</snip>
Hi Micheal
I am being vague, because i don't understand all the issues - this is my first transform. So
then, I don't think then I understand your second option then. This is the code that i wrote below (Listing 1)
(Listing 1) <?xml version="1.0"?> <xsl:transform xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:f="http://www.elegalpublishing.com/namespace" version="2.0" exclude-result-prefixes="f xs">
<xsl:template match="Document/DocumentBody"> <REGULATION> <xsl:for-each-group select="Paragraph" group-starting-with="*[@StyleName='PART']"> <xsl:apply-templates select="."/> </xsl:for-each-group> </REGULATION> </xsl:template>
<xsl:template match="Paragraph"> /* This is where opening ELEMENT should go EG. <PART> or <DIVISION> */ /* and but where does the closing element go EG </PART> or </DIVISION> */ <xsl:copy-of select="child::node()"/> <xsl:for-each-group select="current-group() except ." group-starting-with="*[@StyleName=f:child(@StyleName)]"> <xsl:apply-templates select="."/> </xsl:for-each-group> </xsl:template>
<xsl:function name="f:child"> <xsl:param name="level"/>
<xsl:choose>
<xsl:when test="$level='PART'">
DIVISION
</xsl:when>
<xsl:when test="$level='DIVISION'"> REGULATION </xsl:when>
<xsl:when test="$level='REGULATION'"> SUB-REGULATION </xsl:when> </xsl:choose> </xsl:function> </xsl:transform>
Thanks Mark Brand
Michael Kay wrote:
* Mark Brand
Hi
I have further questions on the fragments posted earlier. I did try implementing both options but had some questions ...
Q1. <snip>
<xsl:for-each-group select="current-group() except "." group-starting-with="*[@StyleName='DIVISION']">
</snip>
With this line of code, i found that it would execute (enter the for-each-group
loop) even if there wasn't a DIVISION item in the group. How do I stop the loop being entered if the group-starting-with entry is not in the list. I have tried an if statement after the loop has been entered but it is too late then for my purposes.
This reads to me like
<xsl:if test="current-group()/*[@StyleName='DIVISION']">
<xsl:for-each-group select="current-group() except "." group-starting-with="*[@StyleName='DIVISION']">
...
</xsl:if>
But I may have misunderstood the requirement. What do you want to happen if there isn't a DIVISION item in the group?
Q2. <snip>
<Part Category="{@StyleName}">
<xsl:copy-of select="child::node()"/>
<xsl:for-each-group select="current-group() except ."
group-starting-with="*[@StyleName=f:child(@StyleName)]">
<xsl:apply-templates select="."/>
</snip>
With this piece of code from the second option where would you put the closing tags, where-ever i put them they would all output after everything else instead of in a nested fashion.
Clearly the XSLT must be well-formed XML, so the closing tags have to be properly nested, and they will then also be properly nested in the result document. In fact, it's impossible to output a document in which the tags aren't properly nested! So I don't think I understand the question.
Michael Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSLT 2.0 & Grouping for-, Mark Brand | Thread | AW: [xsl] Sorting Upper-Case first., Markus Abt |
Re: [xsl] XSLT 2.0 & Grouping for-, Mark Brand | Date | RE: [xsl] selecting everything belo, Jorg Heymans |
Month |