我在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元素(德语?)的文本()不等于当前节点(在foreach内的文字? )
但这些只是猜测。
编辑:
"not(following::lieferant/text() = current()/text)"
所以你说选择的元素,你目前正在(以下:: lieferant),其文字内容不符合的文本元素的含量等于以下所有lieferant元素的当前()节点。
很简单:
<xsl:if test="not(following::lieferant/text()=current()/text)">
<!-- Processing here ... -->
</xsl:if>
意味着:
执行"Processing here ..."
只有如果心不是有相同的字符串值,因为一些在text
孩子的following::lieferant/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()
节点相同的字符串值。
'0'应该是''''? – 2011-11-30 13:26:17
是的,这是真的 –