如何测试我的情况是否是这样;
<xsl:if test="node = '1' or node='2'">
<input name="list_{@id}" value="{@id}" type="checkbox"/>
</xsl:if>
IF 语句是否允许 OR 条件?请指教..
IF 语句是否允许 OR 条件?
不,但是 XPath 有一个or
运算符——请注意 XPath 是区分大小写的语言。
提供的代码中的 XPath 表达式:
node = '1' or node='2'
在语法上是正确的。
or
是一个标准的 XPath 运算符,可用于组合两个子表达式。
[33] 运算符名 ::= '和' | '或' | '模组' | 'div'
这是一个完整的 XSLT 转换示例:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="num[ . = 3 or . = 5]"/>
</xsl:stylesheet>
当此转换应用于以下 XML 文档时:
<nums>
<num>01</num>
<num>02</num>
<num>03</num>
<num>04</num>
<num>05</num>
<num>06</num>
<num>07</num>
<num>08</num>
<num>09</num>
<num>10</num>
</nums>
产生所需的正确结果(复制的所有元素除了<num>03</num>
and <num>05</num>
:
<nums>
<num>01</num>
<num>02</num>
<num>04</num>
<num>06</num>
<num>07</num>
<num>08</num>
<num>09</num>
<num>10</num>
</nums>
您可以使用或就像您在示例中所做的那样。以下是 XSLT 中支持的运算符。