If statement XSLT/Xpath:如何找出某物是或不是´;t在钥匙上(带if)?
我在XSLT和if中的代码有问题。我正在使用键函数,在那里我会找出键中是否有东西If statement XSLT/Xpath:如何找出某物是或不是´;t在钥匙上(带if)?,if-statement,xslt,xpath,xslt-2.0,xpath-2.0,If Statement,Xslt,Xpath,Xslt 2.0,Xpath 2.0,我在XSLT和if中的代码有问题。我正在使用键函数,在那里我会找出键中是否有东西 <xsl:key name="hlp" match="help" use="@id" /> ... <xsl:if test="key('hlp', @some_id) !=''"> ... </xsl:if> ... ... 这是正确的,它给了我我想要的,但我如何才能使@some_id不在关键hlp中的相反条件。。。我的意思是:
<xsl:key name="hlp" match="help" use="@id" />
...
<xsl:if test="key('hlp', @some_id) !=''">
...
</xsl:if>
...
...
这是正确的,它给了我我想要的,但我如何才能使@some_id不在关键hlp中的相反条件。。。我的意思是:
<xsl:if test="key('hlp', @some_id) <!--is equal--> ''">
...
</xsl:if>
<xsl:if test="key('hlp', @some_id) <!--is equal--> ''">
...
</xsl:if> ```
Is there something like that in XSLT/XPath?
调用键('x','y')
时,结果是一组节点,其中键等于'y'
。可以使用empty()函数(在XSLT 2.0中)或XSLT 1.0中的not()函数测试节点集是否为空:
<xsl:if test="not(key('x', 'y'))" version="1.0">...</xsl:if>
<xsl:if test="empty(key('x', 'y'))" version="2.0">...</xsl:if>
。。。
...
或者对于反向测试(测试是否发现了某些东西):
。。。
...
通过将结果与字符串进行比较进行测试是错误的。测试键('x','y')='
和键('x','y')!=''如果key()
函数的结果为空节点集,则code>将返回false;相反,如果key()
函数选择两个节点,一个有内容,另一个没有内容,则两个测试都将返回true
但我如何才能做出相反的条件,即@some_id不在键中
hlp。。。我的意思是:
<xsl:if test="key('hlp', @some_id) <!--is equal--> ''">
...
</xsl:if>
<xsl:if test="key('hlp', @some_id) <!--is equal--> ''">
...
</xsl:if> ```
Is there something like that in XSLT/XPath?
什么是“钥匙里有东西还是钥匙里没有东西”呢?处于关键或不关键是一个音乐术语,而不是XSLT术语。请提供一个更好的解释你的问题,最好与你的条件是真实和错误的例子。与已知条件相反的是而不是($condition)
。注意x!=y
和非(x=y)
。
<xsl:if test="key('hlp', @some_id) <!--is equal--> ''">
...
</xsl:if> ```
Is there something like that in XSLT/XPath?
<xsl:apply-templates select="/*[not(key('hlp', @some_id))]" mode="not-found"/>