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演算子であり、2つの部分式を組み合わせるために使用できます

[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>
于 2012-06-08T03:14:34.860 に答える
2

例で使用したのと同じように使用できます。XSLTでサポートされている演算子は次のとおりです

于 2012-06-08T03:06:44.353 に答える