XSLT 为输入 XML 中的每个分隔符位置分配变量

问题描述 投票:0回答:1

在我的 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 中实现这一目标?

xslt xslt-1.0 xslt-2.0 xslt-3.0 xslt-grouping
1个回答
0
投票

如果将 single 变量定义为:

<xsl:variable name="departments" select="tokenize(/EmpJob/EmpJob/ConcatDepartment, '\+')"/>

然后您可以引用各个标记,例如:

<xsl:value-of select="$departments[2]" />

将返回字符串

"Local_Functions"
和:

<xsl:value-of select="$departments[10]" />

将返回一个空字符串。

© www.soinside.com 2019 - 2024. All rights reserved.