* 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="*[(_at_)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()/*[(_at_)StyleName='DIVISION']">
<xsl:for-each-group select="current-group() except "."
group-starting-with="*[(_at_)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="{(_at_)StyleName}">
<xsl:copy-of select="child::node()"/>
<xsl:for-each-group select="current-group() except ."
group-starting-with="*[(_at_)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