我有一个带有某些标记的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>
有人可以给我一个简单的解决方案吗?谢谢!
答案 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。