如何测试我的情况是否如此;
<xsl:if test="node = '1' or node='2'">
<input name="list_{@id}" value="{@id}" type="checkbox"/>
</xsl:if>
IF声明是否允许OR条件?请指教..
答案 0 :(得分:6)
IF语句是否允许OR条件?
不,但XPath有or
运算符 - 请注意XPath是区分大小写的语言。
提供的代码中的XPath表达式:
node = '1' or node='2'
在语法上是正确的。
or
是standard XPath operator,可用于合并两个子表达式。
[33] OperatorName :: ='和'| '或'| 'mod'| '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>
和<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>
答案 1 :(得分:1)
您可以使用或者就像您在示例中所做的那样。 Here是XSLT中支持的运算符。