1

给定这样的 XML

<data>
    <item temp="cool"/>
    <item temp="hot"/>
    <item temp="hot"/>
    <item temp="lukewarm"/>
</data>

我可以很容易地测试是否有任何东西很热:

<xsl:if test="/data/item/@temp = 'hot'">
    Something's hot in here
</xsl:if>

但是测试是否没有任何东西是热的对我来说有点令人费解:

<xsl:choose>
    <xsl:when test="/data/item/@temp = 'hot'"></xsl:when>
    <xsl:otherwise>
        Nothing's hot in here.
    </xsl:otherwise>
</xsl:choose>

我有几种情况,我只想在非情况下附加一些元素,所以我想消除额外的代码。

无论如何我可以把它写成一个测试语句吗?

顺便说一句,这不起作用

<xsl:if test="/data/item/@temp != 'hot'">
    Nothing's hot in here
</xsl:if>

因为只要一件事不热,它就会过去。

4

1 回答 1

3

试试这个作为 XPath:not(/data/item[@temp='hot'])

这转化为where there does not exist an <item> that has a "temp" attribute with value "hot"

于 2013-10-22T20:39:08.803 回答