[解決済み] ブーリアン値を作成するには?
質問
私はXSLTの全くの初心者なのですが、以下のコードのどこが間違っているのかがわかりません。
<xsl:variable name="var" select="boolean('false')"/>
<xsl:if test="$var'">variable is true</xsl:if>
falseのつもりが常にtrueを返しています。なぜでしょうか?
どのように解決するのですか?
で定義されている変数$varの値です。
<xsl:variable name="var" select="boolean('false')"/>
は
true()
これは、XPathの"
false
は普通の文字列であり、それに対して
false()
のコンストラクタである
boolean
の値です。
false()
XPathにおける2つのブーリアン値とは (となります(構成されていることに注意!)。
true()
そして
false()
任意の値をbooleanに変換する詳細については XPath Spec .:
"その ブーリアン 関数は次のように引数をbooleanに変換します。
-
数値が真であるのは、それが が正または負のゼロでない場合 でもNaNでもない場合
-
ノードセットが真であるのは、それが が空でない場合のみ
-
文字列が真であるのは、その 長さが0でない場合のみ
-
4つの基本型以外の型のオブジェクトは、その型に依存した方法でbooleanに変換される "になります。
あなたの場合、文字列 "false" は数字の 0 ではなく、正の長さを持つので、上記 3 箇条目の規則が適用され、以下のようになります。
true()
.
したがって、XSLT 1.0で変数を定義する場合、その値は
false()
というように定義する必要があります。
<xsl:variable name="vMyVar" select="false()"/>
とか、正確に覚えていないなら、いつでも書けるはずです。
<xsl:variable name="vMyVar" select="1 = 0"/>
(に評価される任意の式を指定します。
false()
と評価される式を指定すると、XSLT プロセッサがその作業を行います。
XSLT 2.0 では、常に明示的にタイプ を明示的に指定することが望ましいです。
<xsl:variable name="vMyVar" as="xs:boolean" select="false()"/>
関連
-
[解決済み] argparseによるブーリアン値のパース
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] ブーリアン値を格納するために使用するMySQLデータ型
-
[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
-
[解決済み] Pythonで文字列からbooleanに変換する?
-
[解決済み] C言語でのブーリアン値の使用
-
[解決済み] ブーリアンのトグルを行うには?
-
[解決済み] XMLの属性値で二重引用符をエスケープするには?
-
[解決済み] Androidでカスタム書体を使用する
-
[解決済み] 特定のphpunit xmlテストスイートを実行するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] XMLの<![CDATA[]]>は何を意味するのですか?
-
[解決済み] XMLを用いたカスタムandroid UI要素の宣言
-
[解決済み] foo "を含む属性を選択するための正しいXPathは何ですか?
-
[解決済み] XMLの属性値で二重引用符をエスケープするには?
-
[解決済み] XPath contains()の使い方を教えてください。
-
[解決済み] 有効なXMLファイルにはXML宣言が必要ですか?
-
[解決済み] XSD - 要素を何度でも好きな順番で並べられるようにするには?
-
[解決済み] xsl:for-eachループ内のカウンタ
-
[解決済み] DTDにおけるPCDATAとCDATAの違いについて
-
[解決済み] スキーマ定義における<xsd:all>と<xsd:sequence>の違い?