<ZoneLane>
<OriginDestinationPointTypeCode>Z</OriginDestinationPointTypeCode>
<ZoneLaneReference>ALL</ZoneLaneReference>
<CountryCode>**</CountryCode>
<CountryName>ALL</CountryName>
<Zone>ALL</Zone>
</ZoneLane>
<ZoneLane>
<OriginDestinationPointTypeCode>Z</OriginDestinationPointTypeCode>
<ZoneLaneReference>032</ZoneLaneReference>
<CountryCode>**</CountryCode>
<CountryName>ALL</CountryName>
<Zone>32</Zone>
</ZoneLane>
我使用的代码是:
<xsl:variable name="svAllZoneOnly">
<xsl:choose>
<xsl:when test ="ZoneLane[*[2]] and not(ZoneLane/ZoneLaneReference = 'ALL')">
N
</xsl:when>
<xsl:otherwise>
Y
</xsl:otherwise>
</xsl:choose>
我需要定义一个变量,当只有Zone'ALL'存在时,该变量返回'Y'。不是当我有区域'ALL'和其他区域的组合时。
有没有解决方案?
答案 0 :(得分:0)
怎么样:
test ="Zone[. = 'ALL'] and count(Zone) = 1"
答案 1 :(得分:0)
您可以使用
$X//Zone[.='ALL'] and not($X//Zone[. != 'ALL'])
其中$X
定义条件必须为真的范围。
与@ michael.hor257k的答案不同,如果有两个区域元素都具有值&#39; ALL&#39;,则此答案将成立。我们都在猜测你想要测试的条件。