<illustratedPartsCatalog>
<figure id="fig1">...</figure>
<catalogSeqNumber>...</catalogSeqNumber>
<catalogSeqNumber>...</catalogSeqNumber>
<catalogSeqNumber>...</catalogSeqNumber>
<catalogSeqNumber>...</catalogSeqNumber>
<catalogSeqNumber>...</catalogSeqNumber>
<figure id="fig2">...</figure>
<catalogSeqNumber>...</catalogSeqNumber>
<catalogSeqNumber>...</catalogSeqNumber>
<catalogSeqNumber>...</catalogSeqNumber>
<catalogSeqNumber>...</catalogSeqNumber>
<catalogSeqNumber>...</catalogSeqNumber>
</illustratedPartsCatalog>
Каждая фигура получает свою собственную таблицу <catalogSeqNumber>s
, но сейчас таблица Figure1 также включает в себя записи для Figure2 и наоборот. Обработка <catalogSeqNumber>
должна прекратиться, когда она достигнет следующей цифры.
решаемые с ответом Томалак в:
<xsl:template match="illustratedPartsCatalog">
<xsl:apply-templates />
</xsl:template>
Я добавил это к концу <xsl:template match="figure">
<xsl:if test="following-sibling::*[1][self::catalogSeqNumber] and ancestor::illustratedPartsCatalog">
<xsl:call-template name="PI-TABLE"/>
</xsl:if>
И добавил это PI-TABLE (который строит таблицу <catalogSeqNumber>
):
<xsl:apply-templates select="key('kCSN', @id)" />
Блестяще, спасибо, Томалак. Я видел '', используемый в аналогичном вопросе, но я не мог понять, как его изменить. –
Caroline
Существует объяснение xsl: ключ, который я написал ранее, возможно, это поможет вам обернуть вокруг себя голову. http://stackoverflow.com/questions/948218/xslt-3-level-grouping-on-attributes/955527#955527 – Tomalak
Danke, Tomalak. – Caroline