如何在XML中组合两个select

时间:2018-05-02 12:46:10

标签: xml xslt

在输入XML文件中,我有名称和姓氏:

 <ClientList>
    <Client>
        <Name>Jan</Name>
        <Surname>Kowalski</Surname>
    </Client>
 </ClientList>

在输出XML文件中,我希望得到这样的输出:

 <NameSurname>Jan Kowalski</NameSurname>

我的XSL文件无法正常工作:

<xsl:for-each select="ClientList/Client">
<xsl:element name="NameSurname">
<xsl:value-of select="Name"/>
<xsl:value-of select="Surname"/>
</xsl:element>

如何将姓名和姓氏组合在一起?

2 个答案:

答案 0 :(得分:2)

你的XSLT看起来很好。添加<xsl:text> </xsl:text>以在名称之间插入空格。

顺便说一句,<xsl:element name="NameSurname">是一种非常圆润的说法<NameSurname>。除非元素的名称是计算的结果,否则请勿使用<xsl:element>

答案 1 :(得分:1)

<xsl:template match="/">
       <xsl:for-each select="ClientList/Client">
           <xsl:element name="Name_Surname">
               <xsl:value-of select="concat(Name,' ',Surname)"/>
           </xsl:element>
       </xsl:for-each>
   </xsl:template>