XML: (. Для бывших 4)список Сплит узел в части
<mode>1</mode>
<mode>2</mode>
<mode>3</mode>
<mode>4</mode>
<mode>5</mode>
<mode>6</mode>
<mode>7</mode>
<mode>8</mode>
<mode>9</mode>
<mode>10</mode>
<mode>11</mode>
<mode>12</mode>
мне нужно разделить его на части:
XSLT:
<xsl:variable name="vNodes" select="mode"/>
<xsl:variable name="vNumParts" select="4"/>
<xsl:variable name="vNumCols" select="ceiling(count($vNodes) div $vNumParts)"/>
<xsl:for-each select="$vNodes[position() mod $vNumCols = 1]">
<xsl:variable name="vCurPos" select="(position()-1)*$vNumCols +1"/>
<ul>
<xsl:for-each select="$vNodes[position() >= $vCurPos and not(position() > $vCurPos + $vNumCols -1)]">
<li><xsl:value-of select="."/></li>
</xsl:for-each>
</ul>
</xsl:for-each>
этот код написан Dimitre Novatchev - отличный кодер))
но для количества узлов меньше, чем количество деталей (например, у меня есть 2 modes
) этот код не работает - он ничего не выводит.
Как это модернизировать для этого случая (без choose
)?
откровенно, я был убежден, что логика вопроса ясно и понятно, что мы должны получить на выходе. Но вы должны согласиться со мной, что довольно странно спрашивать о коде, который в одном случае отображает все правильно, а другой просто ничего не выводит, хотя вход есть. хорошо, я согласен, что я плохо спросил, недостаточно ясно. в следующий раз я постараюсь усерднее. – Kalinin
@ Kalinin: Не ожидайте удовлетворительного решения, если вы не объясните, что значит разделить две вещи на четыре части. –
Вы правы. это моя ошибка. я извиняюсь. – Kalinin