XSLT串联节点

时间:2018-11-28 07:25:00

标签: xml xslt concatenation

我有一个带有某些标记的XML:

<firstName>George</firstName>
<middleName>M</middleName>
<lastName>Stuard</lastName>

(和许多其他任务),我需要在我的XSL中合并这三个名称以拥有

<fullName>George M Stuard</fullName>
输出XML中的

。我找到了一些示例,但没有一个起作用,或者更好的说,我不知道如何使它们起作用。

我尝试过这样的事情:

<fullName>
  <xsl:template name="ConcatMyXML" match="name">
    <xsl:variable name="MyConcatVar">
     <xsl:for-each select="givenNames/lMiddleName/familyName">
        <xsl:value-of select="./text()"/>
     </xsl:for-each>
    </xsl:variable>
  </xsl:template>
 <xsl:value-of select="$MyConcatVar"/>
</fullName>

有人可以给我一个简单的解决方案吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以按照给定的信息通过以下代码来实现:

<fullName>
    <xsl:for-each select="givenNames/lMiddleName/familyName">
        <xsl:value-of select="concat(firstName,' ',middleName,' ',lastName)" />
    </xsl:for-each>
</fullName>

对于这个(以及许多其他任务),如果您需要使用变量:

<fullName>
    <xsl:variable name="MyConcatVar">
        <xsl:for-each select="givenNames/lMiddleName/familyName">
            <xsl:value-of select="concat(firstName,' ',middleName,' ',lastName)" />
        </xsl:for-each>
    </xsl:variable>
    <xsl:value-of select="$MyConcatVar" />
</fullName>

根据您的节点树在 for-each 中更改XPATH。