Hi All,
I am missing something obvious with grouping but I am not sure what. Here is
my input:
<?xml version='1.0' encoding='UTF-8'?>
<doc>
<pgf href="control-panel.dita" level="1" topictype="concept"/>
<pgf href="r_zt230-printer-control-panel.dita" level="2"
topictype="reference"/>
<pgf href="r_zt220-printer-control-panel.dita" level="2"
topictype="reference"/>
<pgf href="r_zt210-printer-control-panel.dita" level="2"
topictype="reference"/>
<pgf href="c_navigating-through-screens-in-the-zt230-printer-display.dita"
level="2" topictype="concept"/>
<pgf href="t_idle-display.dita" level="3" topictype="task"/>
<pgf href="t_home-menu.dita" level="3" topictype="task"/>
<pgf href="t_user-menus.dita" level="3" topictype="task"/>
<pgf href="c_idle-display-home-menu-and-user-menus.dita" level="2"
topictype="concept"/>
</doc>
I want to produce this output:
<map>
<topicref href="control-panel.dita" type="concept">
<topicref href="r-zt230-printer-control-panel.dita"
type="reference"/>
<topicref href="r-zt220-printer-control-panel.dita" type="reference
"/>
<topicref href="r-zt210-printer-control-panel.dita"
type="reference"/>
<topicref
href="c-navigating-through-screens-in-the-zt230-printer-display.dita"
type="concept">
<topicref href="t-idle-display" type="task"/>
<topicref href="t-home-menu.dita" type="task"/>
<topicref href="t-user-menus.dita" type="task"/>
</topicref>
<topicref href="c-idle-display-home-menu-and-user-menus.dita"
type="concept"/>
</topicref>
</map>
This is my stylesheet:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:math="http://www.w3.org/2005/xpath-functions/math"
exclude-result-prefixes="xs math"
version="3.0" expand-text="yes">
<xsl:output indent="yes"/>
<xsl:template match="/doc">
<map>
<xsl:for-each-group select="pgf"
group-starting-with="@level[.='1']">
<xsl:apply-templates select="." mode="group"/>
</xsl:for-each-group>
</map>
</xsl:template>
<xsl:template match="pgf[@level='1']" mode="group">
<topicref href="{./@href}">
<xsl:for-each-group select="current-group() except ."
group-starting-with="@level[.='2']">
<xsl:apply-templates select="." mode="group"/>
</xsl:for-each-group>
</topicref>
</xsl:template>
<xsl:template match="pgf[@level='2']" mode="group">
<topicref href="{./@href}">
<xsl:for-each-group select="current-group() except ."
group-starting-with="@level[.='3']">
<xsl:apply-templates select="." mode="group"/>
</xsl:for-each-group>
</topicref>
</xsl:template>
<xsl:template match="pgf" mode="group">
<topicref href="{@href}"/>
</xsl:template>
<xsl:mode on-no-match="shallow-skip"/>
</xsl:stylesheet>
Thanks in advance for any pointers.
Rick
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--