2011-12-20 11 views
-1

私はXMLシートからのさまざまな要素をレンダリングするために、いくつかのXSLTを使用しますが、そのプロパティの値のいずれかが真のXSLT 1.0ブール条件が適切に

<xsl:variable name="showInIndex" select="true()"/> 
<xsl:variable name="BoolFromSheet" select="@showInIndex"/> 

<xsl:when test="string($showInIndex) = string($BoolFromSheet)"> 
... 
</xsl:when>... 

として設定されている場合にのみ、私が試した動作していません2つの変数値を出力し、それらはtrueまたはfalseのいずれかを含みます。だから空の値に問題はありません。

私もstring(true())でそれらの1つを置き換えようとしましたが、どちらも役に立たなかった。
私はさまざまな例でそれを見てきたので、私はそれらをstring()に変換します。違いがあるのか​​どうかは分かりません。両者ともブーリアンです。

+1

@showInIndexは論理型ではなく、属性ノードです。あなたはその属性が何を含んでいるか教えていません。あなたはまた、問題が「正しく働いていない」ということを除いて、問題が何であるか教えてくれませんでした。 –

答えて

0

属性ノードの値は常に文字列です。 XSLTプロセッサは文字列の内容を決して解釈しません。

<xsl:when test='@showInIndex="true"'/> 

あなたは文字を小文字に大文字の文字を変換する必要がある場合がありますtranslate(@showInIndex,"TRUE","true")

関連する問題