[解決済み] XSLT <xsl:if> で文字列を比較するときに "not equals to" を指定するにはどうすればよいですか?
2022-02-07 12:03:16
質問
現在、以下のコードを含むxslがあり、以下の場合にのみ、"count"を出力しようとしています。
N/A
しかし、以下のように思われます。
"!="
が動作しない。
<xsl:for-each select="Directory/Match">
<xsl:if test = "Count != N/A">
<tr>
<td><xsl:value-of select="@bookName" /></td>
<td><xsl:value-of select="@AuthorName" /></td>
<td><xsl:value-of select="Count" /></td>
</tr>
</xsl:if>
</xsl:for-each>
しかし、数値で比較しようとするとうまくいきます。
例
<xsl:if test = "Occurrances != 0">
どなたか教えてください:文字列を比較したい場合、何を使えばいいのでしょうか?
どのように解決するのですか?
フィルバートが言うように、しかし、通常、次のように書いた方が良いことに注意してください。
test="not(Count = 'N/A')"
Count要素が1つだけなら同じ意味ですが、Countがなかったり、複数あったりすると意味が違ってきます。
6年後
この回答は人気があるようですが、読者によっては少し不可解かもしれませんので、拡大解釈させていただきます。
XPath の "=" および "!=" 演算子は、2 つの値の集合を比較することができます。一般に、A と B が値のセットである場合、"=" は A と B の値のペアで等しいものがあれば真を返し、一方 "!=" は、等しくないペアがあれば真を返します。
Aが0か1のノードを選択し、Bが定数(例えば"NA")である一般的なケースでは、これは次のことを意味します。
not(A = "NA")
は、Aが存在しないか、"NA"と等しくない値を持つ場合に、真を返します。これに対して
A != "NA"
は、Aが存在し、かつ "NA" と等しくない場合に真を返します。通常、"absent" の場合は "not equal" として処理したいので、以下のようになります。
not(A = "NA")
が適切な表現です。
関連
-
[解決済み] XSLT v2.0 を用いて XML ファイルに schemaLocation を挿入する。
-
[解決済み] XSLT <xsl:if> で文字列を比較するときに "not equals to" を指定するにはどうすればよいですか?
-
[解決済み] XSLで親ノードの属性を取得する
-
[解決済み] ノードに属性を追加する
-
[解決済み] XSLTにおける分割
-
[解決済み] XSLの "contains "ディレクティブはありますか?
-
[解決済み】XSLTで を挿入する方法
-
[解決済み】XPathでノードが存在するかどうかを確認する
-
[解決済み] XSLTで最後の要素を取得する
-
[解決済み] xsltのtest属性に2つの条件を入れることはできますか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] XSLT v2.0 を用いて XML ファイルに schemaLocation を挿入する。
-
[解決済み] XSLT <xsl:if> で文字列を比較するときに "not equals to" を指定するにはどうすればよいですか?
-
[解決済み] XSLTで指定された値を持つ要素を数える
-
[解決済み] ノードに属性を追加する
-
[解決済み] XSLTにおける分割
-
[解決済み] XSLTで現在の日付を挿入することはできますか?
-
[解決済み] XSLの "contains "ディレクティブはありますか?
-
[解決済み】XPathでノードが存在するかどうかを確認する
-
[解決済み] XSLTで最後の要素を取得する
-
[解決済み] xsltのtest属性に2つの条件を入れることはできますか?