我遇到了使用for-each的XSLT问题。
<publication>
<publicationId>1234</publicationId>
<title>some title</title>
<type>some type</type>
<authors>
<author>author 1</author>
<author>author 2</author>
</authors>
<journal>true</journal>
</publication>
<xsl:template match="/">
<xsl:for-each select=publication">
<xsl:for-each select="authors">
<xsl:value-of select="."/>,
</xsl:for-each>
</xsl:for-each>
for-each-loop
不会逐行排在列表中。
而不是我也试过,但后来我才得到第一作者。
在每个作者标签之后我也需要一个“,”。
答案 0 :(得分:1)
而不是这样做
<xsl:for-each select="authors">
你应该这样做
<xsl:for-each select="authors/author">
这是因为只有一个“作者”节点,但有很多“作者”节点,而且它是你想要迭代的“作者”节点。
事实上,您可以将两个循环合并为一个,如下所示:
<xsl:for-each select="publication/authors/author">
答案 1 :(得分:1)
<xsl:for-each select="publication/authors/author">
将做必要的事情。另外,当添加“,”时,最好使用<xsl:text>
标记。