У меня есть код строки в XSLT, но я не понимаю, некоторые его части:Пожалуйста, объясните мне эту строку кода
<xsl:if test="not(following::lieferant/text()=current()/text)">
.
.
.
.
</xsl:if>
Что означают линии?
У меня есть код строки в XSLT, но я не понимаю, некоторые его части:Пожалуйста, объясните мне эту строку кода
<xsl:if test="not(following::lieferant/text()=current()/text)">
.
.
.
.
</xsl:if>
Что означают линии?
Это очень хорошая недействителен линия XPath:
"not(following::lieferant/text()0current()/text"
Где закрытие )
?
Может быть, вы имели в виду это:
"not(following::lieferant/text() = current()/text())"
Это означало бы, чтобы проверить, если текст() следующего lieferant элемента (Deutsch?) Не совпадает с текстом текущего узла (внутри Еогеасп?)
Но это только догадки.
Edit:
"not(following::lieferant/text() = current()/text)"
Так вы говорите, выбрать все lieferant элементы после элемента вы находитесь в настоящий момент (ниже :: lieferant), содержание которых текст не совпадает с содержанием текста элемента вашего current().
о, да, я обновил его, и это Deutsch :) –
благодарю вас за ответ. но что такое следующий элемент? –
@BabakBst У вашего текущего() узла есть текстовый элемент? – FailedDev
Очень просто:
<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()
.
Предполагается, что '0'' '' ''? –
yeh, это правда –