xslt中基于xpath值的动态字符串形成

时间:2018-04-13 11:33:04

标签: string xslt xpath xquery

任何人都可以在xslt中建议短期和适当的解决方案以满足以下要求。

我在Xpaths下方返回'Y'或'N'作为输出。

us:user /ws:Additional_Information/ws:is_HR = 'Y'
us:user /ws:Additional_Information/ws:is_Manager = 'Y'
us:user /ws:Additional_Information/ws:is_Employee = 'Y'
us:user /ws:Additional_Information/ws:is_Admin= 'Y'

所以,我需要在上面的结果中形成一个字符串'HR-Manager-Employee-Admin',因为每个其他xpath都返回'Y'。

假设,如果xpaths将输出返回为

us:user /ws:Additional_Information/ws:is_HR = 'Y'
us:user /ws:Additional_Information/ws:is_Manager = 'Y'
us:user /ws:Additional_Information/ws:is_Employee = 'Y'
us:user /ws:Additional_Information/ws:is_Admin= 'N'

字符串应为'HR-Manager-Employee'。

这个过程应该满足所有组合。

1 个答案:

答案 0 :(得分:2)

假设XSLT 2或3可以使用

<xsl:value-of select="us:user/ws:Additional_Information/(ws:is_HR,ws:is_Manager,ws:is_Employee,ws:is_Admin)[. = 'Y']/substring(local-name(), 4)" separator="-"/>

或纯XPath 2或更高版本

string-join(us:user/ws:Additional_Information/(ws:is_HR,ws:is_Manager,ws:is_Employee,ws:is_Admin)[. = 'Y']/substring(local-name(), 4), '-')