我不是程序员,需要专业人士的帮助。如果我有多个验证,我想检查,例如,当test=78或81时,我想要这个结果。
我尝试过在没有成功访问的情况下使用
<xsl:variable name = "vatTerm">
<xsl:choose>
<xsl:when test="(DocumentXML/ApplicationObject/Object/CarTypeId!='78') and (CarTypeId!='81')">
<xsl:value-of select="(($netterm+$termfee)*$vatrate )+$eptermfeetotalvat"/>
</xsl:when>
<xsl:otherwise><xsl:value-of select ="$eptermfeetotalvat"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
也尝试过;
<xsl:choose>
<xsl:when test="(DocumentXML/ApplicationObject/Object/CarTypeId!=78">
<xsl:value-of select="(($netterm+$termfee)*$vatrate )+$eptermfeetotalvat"/>
</xsl:when>
<xsl:when test="(DocumentXML/ApplicationObject/Object/CarTypeId!=81">
<xsl:value-of select="(($netterm+$termfee)*$vatrate )+$eptermfeetotalvat"/>
</xsl:when>
<xsl:otherwise><xsl:value-of select ="$eptermfeetotalvat"/></xsl:otherwise>
</xsl:choose>
你做对了DeMorgan
但是您忘记了路径的基不是重复的。所以,我想,你应该试试
<xsl:when test="DocumentXML/ApplicationObject/Object/CarTypeId!='78' and DocumentXML/ApplicationObject/Object/CarTypeId!='81'">
<xsl:value-of select="(($netterm+$termfee)*$vatrate )+$eptermfeetotalvat"/>
</xsl:when>
这种方法的限制是,它检查给定路径上的任何CarTypeId
是否等于78或81。如果您只有一个CarTypeId
,那么这将适用于XPath-1.0。
使用XPath-2.0,您可以简化和精确地执行此任务。
我会使用像这样的一个谓词
<xsl:choose>
<xsl:when test="DocumentXML/ApplicationObject/Object/CarTypeId[.!='78' and .!='81']">
<xsl:value-of select="(($netterm+$termfee)*$vatrate )+$eptermfeetotalvat"/>
</xsl:when>
<xsl:otherwise><xsl:value-of select ="$eptermfeetotalvat"/>
</xsl:otherwise>
</xsl:choose>