Пожалуйста, объясните мне эту строку кода - PullRequest
1 голос
/ 30 ноября 2011

У меня есть код строки в XSLT, но я не понимаю некоторые его части:

<xsl:if test="not(following::lieferant/text()=current()/text)">
        .
        .
        .
        .
 </xsl:if>

Что означает строка?

Ответы [ 2 ]

3 голосов
/ 30 ноября 2011

Это очень хорошая неверная строка xpath:

"not(following::lieferant/text()0current()/text"

Где находится закрытие )?

Может быть, вы имели в виду это:

"not(following::lieferant/text() = current()/text())"

Это будет означать, что текст () следующего элемента liferant (Deutsch?) Не равен тексту текущего узла (внутри foreach?)

Но это только догадки.

Edit:

"not(following::lieferant/text() = current()/text)"

Таким образом, вы говорите, выбираете все элементы lieferant, следующие за элементом, в котором вы находитесь (follow :: lieferant), текстовое содержимое которого не равно содержимому текстового элемента вашего current () узла.

1 голос
/ 30 ноября 2011

Очень просто :

<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() узлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...