给出像这样的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>
我有几种情况我只想在非情况下附加一些元素,所以我想省去额外的代码。
无论如何我可以把它写成一个测试声明吗?
BTW这不起作用
<xsl:if test="/data/item/@temp != 'hot'">
Nothing's hot in here
</xsl:if>
因为只要有一件事不热,就会通过。
答案 0 :(得分:3)
尝试使用XPath:not(/data/item[@temp='hot'])
这转换为where there does not exist an <item> that has a "temp" attribute with value "hot"