需要使用concat在Xpath 1.0和2.0表达式中提供帮助吗
我正在使用下面的函数根据EmployerName字段动态调出图像需要使用concat在Xpath 1.0和2.0表达式中提供帮助吗,xpath,conditional-statements,Xpath,Conditional Statements,我正在使用下面的函数根据EmployerName字段动态调出图像 concat("C:\Projects\GlobalResourceSet\Images\",$EmployerName,"_banner_2013.png") 它很好用 但是,如果EmployerName错误或为空,我应该显示默认图像 我们如何使用XPath1.0和XPath2.0实现这一点 任何帮助都将是感激的…在xpath 2.0中,这可能会起作用 if ($EmployerName = "") then "C:\Proj
concat("C:\Projects\GlobalResourceSet\Images\",$EmployerName,"_banner_2013.png")
它很好用
但是,如果EmployerName错误或为空,我应该显示默认图像
我们如何使用XPath1.0和XPath2.0实现这一点
任何帮助都将是感激的…在xpath 2.0中,这可能会起作用
if ($EmployerName = "") then "C:\Projects\GlobalResourceSet\Images\default.png" else concat("C:\Projects\GlobalResourceSet\Images\",$EmployerName,"_banner_2013.png")
在XPath2.0中,这是可行的
if ($EmployerName = "") then "C:\Projects\GlobalResourceSet\Images\default.png" else concat("C:\Projects\GlobalResourceSet\Images\",$EmployerName,"_banner_2013.png")
在XPath 2.0中,还可以执行以下操作:
concat("C:\Projects\GlobalResourceSet\Images\",
($EmployerName[. != ''], 'default')[1],
"_banner_2013.png"
)
这会将雇主名称(如果已设置)和“默认图像名称”按顺序排列,然后选择两者中的第一个
为可读性而添加的换行符可以任意删除。在XPath 2.0中,还可以执行以下操作:
concat("C:\Projects\GlobalResourceSet\Images\",
($EmployerName[. != ''], 'default')[1],
"_banner_2013.png"
)
这会将雇主名称(如果已设置)和“默认图像名称”按顺序排列,然后选择两者中的第一个
为了可读性而添加的换行符可以任意删除。XPath 1.0有一个非常奇怪的解决方案,如下所示:
substring(S, 1, string-length(S) * number(C))
其中S是字符串,C是布尔条件。如果C为false,则数字(C)为0,因此不输出任何内容。如果C为true,则数字(C)为1,因此输出整个字符串。因此效果是“如果条件C为真,则输出S,否则不输出任何内容”;您可以将其与另一个表达式结合使用反向条件,根据条件的值输出不同的字符串
或者您也可以转到XPath 2.0,那里的生活更无聊。XPath 1.0有一个相当奇怪的解决方案,如下所示:
substring(S, 1, string-length(S) * number(C))
其中S是字符串,C是布尔条件。如果C为false,则数字(C)为0,因此不输出任何内容。如果C为true,则数字(C)为1,因此输出整个字符串。因此效果是“如果条件C为真,则输出S,否则不输出任何内容”;您可以将其与另一个表达式结合使用反向条件,根据条件的值输出不同的字符串
或者您可以转到XPath 2.0,那里的生活更无聊。谢谢jirka。。。您能为xpath 1.0提供非常重要的解决方案吗?您是在使用纯xpath还是其他使用xpath的语言(如xslt?),我正在使用一个名为StreamServe说服的CCM工具。在这个工具中,我正在使用这个。对你说得对。。与XSLT类似……在XSLT中,您可以使用xsl:choose实现所需的可能性。我不确定在纯XPath1.0中是否可以(我不知道)。不幸的是,我对StreamServe一无所知。对不起,谢谢你,吉尔卡。。。您能为xpath 1.0提供非常重要的解决方案吗?您是在使用纯xpath还是其他使用xpath的语言(如xslt?),我正在使用一个名为StreamServe说服的CCM工具。在这个工具中,我正在使用这个。对你说得对。。与XSLT类似……在XSLT中,您可以使用xsl:choose实现所需的可能性。我不确定在纯XPath1.0中是否可以(我不知道)。不幸的是,我对StreamServe一无所知。我很抱歉。