Очень просто :
<xsl:if test="not(following::lieferant/text()=current()/text)">
<!-- Processing here ... -->
</xsl:if>
означает :
Выполните "Processing here ..."
только , если нетfollowing::lieferant/text()
узел, который имеет то же строковое значение, что и некоторые из text
дочерних элементов текущего (соответствует текущему шаблону или выбран и обработан самой внутренней xsl:for-each
инструкцией) узла.
Поместитьдругими словами, нет пары узлов, один из которых following::lieferant/text()
, а другой - current()/text
- оба имеют одно и то же строковое значение.
Предоставленный код может бытьопечатка для :
<xsl:if test="not(following::lieferant/text()=current()/text())">
<!-- Processing here ... -->
</xsl:if>
В этом случае приведенное выше объяснение все еще верно, за исключением того, что указанное условие теперь таково: не существует пары узлов, один a following::lieferant/text()
и другойa current()/text()
- оба имеют одно и то же строковое значение.
Другими словами: ни у одного из текстовых узлов, дочерних элементов текущего совпавшего (или выбранного самым внутренним xsl:for-each
) узла, нет одинакового строкового значениякак у любого из following::lieferant/text()
узлов.