Учитывая следующий пример;XSLT: установка атрибута предыдущего узла
<ul id="s-nav">
<xsl:for-each select="$currentPage/ancestor-or-self::node [@level=2]/node">
<li>
<xsl:if test="$currentPage/ancestor-or-self::node/@id = current()/@id">
<xsl:attribute name="class">current</xsl:attribute>
</xsl:if>
</li>
</xsl:for-each>
</ul>
Когда текущий узел является таким же, как текущий <Li>, класс атрибут имеет значение «текущий».
Теперь я хочу установить второй атрибут в блоке if, но для предыдущего <li>, а не для текущего. Любая идея, как это сделать?
Большое спасибо.
Вы хотите добавить class = "previous"? Если это применимо только к 'li' до того, который соответствует текущему или ко всему' li', который предшествует тому, который соответствует текущему? Когда вы спрашиваете о XSLT, часто полезно предоставить как XSLT, так и некоторый образец XML, чтобы помочь людям визуализировать структуру. –
Вы правы. Класс применяется только к одному до матча. – Jeroen
Как определяется текущая страница? Как выглядит ваш XML? Какой движок XSLT вы используете? –