1

以下の関数を使用して、EmployerName フィールドに基づいて動的に画像を取得しています。

concat("C:\Projects\GlobalResourceSet\Images\",$EmployerName,"_banner_2013.png")

それは正常に動作します。

ただし、EmployerName が間違っているか空の場合は、デフォルトの画像を表示する必要があります。

Xpath 1.0 と 2.0 の両方を使用してそれを行うにはどうすればよいですか

どんな助けでも感謝します...

4

3 に答える 3

3

次のような XPath 1.0 のかなり奇妙な解決策があります。

substring(S, 1, string-length(S) * number(C))

ここで、S は文字列、C はブール条件です。C が false の場合、number(C) は 0 であるため、何も出力されません。C が true の場合、number(C) は 1 であるため、文字列全体が出力されます。したがって、その効果は「条件 C が true の場合は S を出力し、それ以外の場合は何も出力しない」ということです。逆条件を使用してこれを別の式と組み合わせて、条件の値に基づいて異なる文字列を出力できます。

または、人生がはるかに退屈な XPath 2.0 に移行することもできます。

于 2013-09-26T13:36:25.723 に答える
2

XPath 2.0 では、次のこともできます。

concat("C:\Projects\GlobalResourceSet\Images\",
  ($EmployerName[. != ''], 'default')[1],
  "_banner_2013.png"
)

これにより、雇用者名 (設定されている場合) と「デフォルトのイメージ名」の両方が順番に配置され、両方の最初の名前が選択されます。

読みやすくするために追加された改行は、任意に削除できます。

于 2013-09-26T12:43:49.300 に答える
1

xpath 2.0 では、これは機能する可能性があります

if ($EmployerName = "") then "C:\Projects\GlobalResourceSet\Images\default.png" else concat("C:\Projects\GlobalResourceSet\Images\",$EmployerName,"_banner_2013.png")
于 2013-09-26T11:14:55.857 に答える