我正在使用以下功能基于EmployerName字段动态提取图像。
concat("C:\Projects\GlobalResourceSet\Images\",$EmployerName,"_banner_2013.png")
工作正常。
但是,如果EmployerName错误或其为空我应该显示默认图像。
我们怎样才能使用Xpath 1.0& 2.0
任何帮助都会感激...
答案 0 :(得分:3)
XPath 1.0有一个相当离奇的解决方案:
substring(S, 1, string-length(S) * number(C))
其中S是字符串,C是布尔条件。如果C为假,则数字(C)为0,因此不输出任何内容。如果C为真,则数字(C)为1,因此输出整个字符串。所以效果是“如果条件C为真,那么输出S else什么都不输出”;并且您可以使用逆条件将其与另一个表达式组合,以根据条件的值输出不同的字符串。
或者你可以转向XPath 2.0,生活更加无聊。
答案 1 :(得分:2)
在XPath 2.0中,您还可以执行以下操作:
concat("C:\Projects\GlobalResourceSet\Images\",
($EmployerName[. != ''], 'default')[1],
"_banner_2013.png"
)
这会将雇主名称(如果已设置)和“默认图像名称”放在一个序列中,然后选择第一个。
为了便于阅读而添加的新行,可以任意删除。
答案 2 :(得分:1)
在xpath 2.0中,这可以正常工作
if ($EmployerName = "") then "C:\Projects\GlobalResourceSet\Images\default.png" else concat("C:\Projects\GlobalResourceSet\Images\",$EmployerName,"_banner_2013.png")