我有以下查询,如下所示 e 有一个条件
<xsl:if test="./Id='AAA' and ./Role='YYY'">
<xsl:value-of select=" 'true'"/>
</xsl:if>
现在我想通过设置另一个条件来扩展它,它也应该允许 id BBB 和角色 ZZZ ,请告知如何实现这一点
<xsl:if test="(./Id='AAA' and ./Role='YYY') or (./Id='BBB' and ./Role='ZZZ')">
<xsl:value-of select=" 'true'"/>
</xsl:if>
如果您必须定义更多的 Id 和 Roles,那么定义这样复杂的条件会有点笨拙。您还可以使用允许的组合制作特殊变量,例如
<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 绝对正确。