我在XSLT中有一个行代码,但我不理解它的某些部分:
<xsl:if test="not(following::lieferant/text()=current()/text)">
.
.
.
.
</xsl:if>
这条线是什么意思?
答案 0 :(得分:3)
这是一个非常好的无效xpath行:
"not(following::lieferant/text()0current()/text"
结束)
在哪里?
也许你的意思是:
"not(following::lieferant/text() = current()/text())"
这将意味着检查以下lieferant元素(Deutsch?)的text()是否不等于当前节点的文本(在foreach中?)
但这些只是猜测。
修改强>
"not(following::lieferant/text() = current()/text)"
所以你说选择你当前所在的元素(跟随:: lieferant)之后的所有lieferant元素,其文本内容不等于当前()节点的文本元素的内容。
答案 1 :(得分:1)
非常简单:
<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>
在这种情况下,上述说明仍然是正确的,除了现在指定的条件是:没有一对节点,一个是following::lieferant/text()
,另一个是current()/text()
- 两者都有相同的字符串值。
换句话说:当前匹配(或由最内层xsl:for-each
)节点选择的子节点的子节点与任何following::lieferant/text()
节点的字符串值都不相同。