在我的 XSLT 中,我需要将值分配给名为 FODepartment_LX 的变量,其中 X 表示从最左侧分隔符开始的分隔符 (+) 的位置,最大位置为 10。如果分隔符的位置没有给出任何值,将变量设置为空字符串 ('') 以表示剩余的 FODepartment_LX。
输入XML:
<EmpJob>
<EmpJob>
<ConcatDepartment>+Local_Functions+Group_Functions+Group_Owners+Group_Managers+Group_Leads+Interim_Services</ConcatDepartment>
</EmpJob>
</EmpJob>
XSLT 中的预期输出,以便我可以使用它进行进一步处理:
<xsl:variable name="FODepartment_L10" select=""/>
<xsl:variable name="FODepartment_L9" select=""/>
<xsl:variable name="FODepartment_L8" select=""/>
<xsl:variable name="FODepartment_L7" select=""/>
<xsl:variable name="FODepartment_L6" select="Interim_Services"/>
<xsl:variable name="FODepartment_L5" select="Group_Leads"/>
<xsl:variable name="FODepartment_L4" select="Group_Managers"/>
<xsl:variable name="FODepartment_L2" select="Group_Owners"/>
<xsl:variable name="FODepartment_L2" select="Group_Functions"/>
<xsl:variable name="FODepartment_L1" select="Local_Functions"/>
如何在 XSLT 中实现这一目标?
如果将 single 变量定义为:
<xsl:variable name="departments" select="tokenize(/EmpJob/EmpJob/ConcatDepartment, '\+')"/>
然后您可以引用各个标记,例如:
<xsl:value-of select="$departments[2]" />
将返回字符串
"Local_Functions"
和:
<xsl:value-of select="$departments[10]" />
将返回一个空字符串。