关于在xslif块中添加条件

时间:2013-06-07 04:16:43

标签: xml xslt xslt-2.0

我有以下查询,如下所示e有条件

<xsl:if test="./Id='AAA' and ./Role='YYY'">
<xsl:value-of select=" 'true'"/>
</xsl:if>

现在我想通过针对这个来设置另一个条件来扩展它 它还应该允许id BBB和角色ZZZ,请告知如何实现这个

2 个答案:

答案 0 :(得分:0)

<xsl:if test="(./Id='AAA' and ./Role='YYY') or (./Id='BBB' and ./Role='ZZZ')">
    <xsl:value-of select=" 'true'"/>
</xsl:if>

答案 1 :(得分:0)

如果你必须定义更多的ID和角色,那么定义这样复杂的条件会有点笨拙。您也可以使用允许的组合制作特殊变量,例如

<xsl:variable name="AllowedUsers">
    <User id="AAA" role="ZZZ" />
    <User id="BBB" role="YYY" />
</xsl:variable>

然后检查它是否包含有关已测试ID和角色的记录。

<xsl:variable name="CurrentElement" select="." />
<xsl:if test="$AllowedUsers/User[@id = $CurrentElement/Id and @role = $CurrentElement/Role]">
    <xsl:value-of select="true" />
</xsl:if>

这只是一个想法,@ Tom绝对正确。