我的xml文档包含一个人员列表,这些人员可以有0个或更多的昵称。我很难在xslt文档中正确显示所有昵称。
我可以使用以下命令列出所有昵称:

<xsl:for-each select="name/nickname">

    Nickname: <xsl:value-of select="." />

</xsl:for-each>

输出如下:
Nickname: nickname1
Nickname: nickname2

这是一个问题,因为我想得到一个没有昵称的输出:被列了很多次,即。
Nickname: nickname1, nickname2.

我现在拥有的是:
<p>
    Nickname:

    <xsl:for-each select="name/nickname">

        <xsl:value-of select="." />,

    </xsl:for-each>
</p>

这方面的问题是:
昵称将始终至少打印一次,即使昵称不存在。
总会有一个左逗号(,)。
我希望有人建议绕过这两个问题,我试着用!“”但我不确定如果一个人不包含昵称,是否允许这样做。
谢谢)

最佳答案

或者,

<xsl:for-each select="name/nickname">
    <xsl:if test="position() = 1">Nickname: </xsl:if>
    <xsl:value-of select="." />
    <xsl:if test="not(position()=last())">, </xsl:if>
</xsl:for-each>

关于html - 格式化XSLT文档以在一行上显示多个昵称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7889328/

10-12 12:56