xslt输出两个xml元素(同名)

时间:2015-05-13 06:45:35

标签: xml xslt

XML:

<bookstore>
  <book isbn="0321049314" year="2000" edition="6">
    <author firstname="Carole" lastname="Wade" />
    <author firstname="Carol" lastname="Tavris" />
    <publisher>Prentice Hall</publisher>
    <price currency="CAN">110.00</price>
  </book>

XSLT:

 <xsl:template match="/">
        <html>
            <body>
                <xsl:for-each select="bookstore/book">
                   Author(s):
                   <p>Publisher: <xsl:value-of select="publisher"/></p>
                </xsl:for-each>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

如何显示两个作者姓名,如下所示:

作者(S):卡罗尔,瓦德 卡罗尔,Tavris

完整的外观将是:

书名:心理学

描述:入门级心理学课程书

课程适用性:PSYC1101

作者://无法弄清楚

出版商:Prentice Hall

价格:110.00

分类:心理学

有库存:10

请帮忙!谢谢!

2 个答案:

答案 0 :(得分:1)

在xslt中也使用作者''标签的每个循环,它将从xml获取多个(所有)作者信息

答案 1 :(得分:0)

以下输出作者,用空格分隔,每个都是&#34;第一,最后&#34;:

<p>
   <xsl:text>Author(s): </xsl:text>
   <xsl:value-of select="author!concat(@firstname, ', ', @lastname)"
                 separator=" "/>
</p>

如果您不使用XSLT 3.0,则必须在xsl:for-each元素上使用author,而不是使用!运算符。那,以及在#34;末尾配置s;作者:&#34;如果是其中几个,则留作练习; - )