8

如何测试我的情况是否是这样;

<xsl:if test="node = '1' or node='2'">
<input name="list_{@id}" value="{@id}" type="checkbox"/>
</xsl:if>

IF 语句是否允许 OR 条件?请指教..

4

2 回答 2

6

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>
于 2012-06-08T03:14:34.860 回答
2

您可以使用或就像您在示例中所做的那样。以下是 XSLT 中支持的运算符。

于 2012-06-08T03:06:44.353 回答