XSLT 加入元素 bpel

XSLT to join elements bpel

我有一个输入

<features>
<feature name="Television" featureSpecID="2000">
    <displayName>TV</displayName>
    <parameters>
        <parameter name="Remote" >
        </parameter>
        <parameter name="Cable Box">
        </parameter>
        <parameter name="Carrier"/>
    </parameter>
</parameters>

我应该在哪里转换为

<productname>Remote;Cable Box;Carrier</productname>

我通过为每个参数

执行我的代码
<xsl:if test='count(tns:parameters/tns:parameter) > "0"'>
    <xsl:for-each select="tns:parameters/tns:parameter">
       <productname>
         <xsl:value-of select='concat(@name,";")'/>
        </productname>
    </xsl:for-each>
 </xsl:if>

<productname> 节点应该在 <xsl:for-each> 循环之外。请修改如下

<productname>
    <xsl:for-each select="tns:parameters/tns:parameter">
        ...
    </xsl:for-each>
</productname>

根据示例输出,需要添加条件以不在产品名称末尾附加 semi-colon

<xsl:if test="position() != last()">
    <xsl:value-of select="';'"/>
</xsl:if>

XSLT 代码更改

<productname>
    <xsl:for-each select="tns:parameters/tns:parameter">
        <xsl:value-of select="@name" />
        <xsl:if test="position() != last()">
            <xsl:value-of select="';'"/>
        </xsl:if>
    </xsl:for-each>
</productname>

输出

<productname>Remote;Cable Box;Carrier</productname>