xml – IF语句是否允许XSLT中的OR条件?

前端之家收集整理的这篇文章主要介绍了xml – IF语句是否允许XSLT中的OR条件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何测试我的病情是否如此;
<xsl:if test="node = '1' or node='2'">
<input name="list_{@id}" value="{@id}" type="checkBox"/>
</xsl:if>

IF声明是否允许OR条件?请指教..

Is IF statement allowed OR condition?

不,但XPath有一个或运算符 – 请注意XPath是区分大小写的语言.

提供的代码中的XPath表达式:

node = '1' or node='2'

在语法上是正确的.

或者是standard XPath operator并且可以用于组合两个子表达式.

[33] OperatorName ::= ‘and’ | ‘or’ | ‘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>

猜你在找的XML相关文章